0

好的,我正在尝试创建一个计算器类型的程序来解决我输入的函数的极值。为此,我必须设置该功能开启的时间间隔。这意味着我有三个不同的文本字段,一个用于方程式,两个用于间隔。

所以,我可以成功地将数字输入到我的方程式字段中,但是尝试输入其他两个会带来问题。我知道,如果我单击两个文本字段中的任何一个,它将获得焦点。如果我尝试通过检查它是否具有焦点来设置字段的新文本,我永远不会得到结果,因为单击按钮总是将焦点更改为按钮。

TL;博士

我如何确定哪个文本字段以前具有焦点,以便我知道将数字放入其中。

编辑:如果有更好的输入方式,我会很高兴知道它是什么。

4

1 回答 1

2

您的问题似乎是XY 问题的一个示例,您将注意力集中在焦点上,就好像它是主要问题一样,而真正的问题(对我来说无论如何)是确保用户在进行计算之前输入了所有数据。

我建议不要担心焦点。使用 DocumentListeners 检查 JTextFields 是否为空,并禁用计算按钮,直到所有 JTextFields 中都有一些文本。我不认为重点对此真的很重要。

编辑
你状态:

好的,如果您认为您可以更好地解决这种情况。我有对应于数字 0-9 和各种功能的三个文本字段和按钮。我希望能够单击一个文本字段,从按钮输入我的数字,单击另一个字段,然后从我制作的按钮中输入我的数字。如何获取用户单击的文本字段?

好的,这有助于我更好地理解您的问题。一种可能的解决方案:通过调用myButton.setFocusable(false)每个 JButton 使 JButton 无法聚焦。然后按下按钮不会从 JTextField 中移除焦点。

于 2012-12-05T23:37:43.103 回答