好的,我正在尝试创建一个计算器类型的程序,它将解决我输入的函数的极值。为此,我必须设置函数所在的时间间隔。这意味着我有三个不同的文本字段,一个用于等式,两个用于间隔。
所以,我可以成功地将数字输入到我的方程字段中,但是尝试输入其他两个字符会带来问题。我知道,如果我点击两个文本字段中的任何一个,它将获得焦点。如果我尝试通过检查它是否具有焦点来设置字段的新文本,我从未得到结果,因为单击按钮总是将焦点更改为按钮。
TL; DR
如何确定以前哪些文字字段具有焦点,以便我可以将数字放入其中。
编辑: 如果有更好的方式完全输入,我会很高兴知道它是什么。
答案 0 :(得分:2)
你的问题似乎是the X Y problem的一个例子,你专注于焦点,好像它是主要的问题,当它看起来真正的问题(对我来说)是确保用户之前输入所有数据做计算。
我建议不要担心焦点。使用DocumentListeners检查JTextField是否为空,并禁用计算按钮,直到所有JTextField都包含一些文本。我不认为重点应该对此非常重要。
修改强>
你说:
好的,如果你认为你可以更好地帮助解决这个问题。我有三个文本字段和按钮对应数字0-9和各种功能。我希望能够在一个文本字段中单击,从按钮输入我的数字,在另一个字段中单击,然后从我创建的按钮输入我的数字。如何获取用户点击的文本字段?
好的,这有助于我更好地理解你的问题。一种可能的解决方案:通过在每个上调用myButton.setFocusable(false)
使JButton不可聚焦。然后按下按钮不会从JTextField中删除焦点。