按下按钮后如何获得文本字段的焦点所有者?

时间:2012-12-05 23:31:24

标签: java swing

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

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

TL; DR

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

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

1 个答案:

答案 0 :(得分:2)

你的问题似乎是the X Y problem的一个例子,你专注于焦点,好像它是主要的问题,当它看起来真正的问题(对我来说)是确保用户之前输入所有数据做计算。

我建议不要担心焦点。使用DocumentListeners检查JTextField是否为空,并禁用计算按钮,直到所有JTextField都包含一些文本。我不认为重点应该对此非常重要。

修改
你说:

  

好的,如果你认为你可以更好地帮助解决这个问题。我有三个文本字段和按钮对应数字0-9和各种功能。我希望能够在一个文本字段中单击,从按钮输入我的数字,在另一个字段中单击,然后从我创建的按钮输入我的数字。如何获取用户点击的文本字段?

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