Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 按下按钮后,如何获取文本字段的焦点所有者?_Java_Swing - Fatal编程技术网

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

Java 按下按钮后,如何获取文本字段的焦点所有者?,java,swing,Java,Swing,好的,我正在尝试创建一个计算器类型的程序,它将求解我输入的函数的极值。为了做到这一点,我必须设置函数开启的时间间隔。这意味着我有三个不同的文本字段,一个用于等式,两个用于间隔 所以,我可以成功地将数字输入到我的方程域中,但是尝试输入到另外两个会带来问题。我知道,如果我点击两个文本字段中的任何一个,它将获得焦点。如果我尝试通过检查字段是否有焦点来设置新文本,我永远不会得到结果,因为单击按钮总是将焦点更改为按钮 TL;博士 如何确定哪个文本字段以前有焦点,以便知道如何将数字输入其中。 编辑: 如果有

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

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

TL;博士

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

编辑:
如果有更好的输入方法,我很乐意知道它是什么。

你的问题似乎是一个例子,说明你将注意力集中在焦点上,好像它是首要问题,而真正的问题(对我来说)似乎是确保用户在进行计算之前输入了所有数据

我建议不要担心焦点。使用DocumentListeners检查JTextFields是否为空,并禁用calculate按钮,直到所有JTextFields中都包含一些文本。我不认为专注对这件事真的很重要

编辑
你说:


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


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

我很困惑——为什么焦点在第一个位置更重要?用户不是在输入所有信息后才按下按钮吗?如果没有正确填写所有字段,您的代码是否会阻止按钮执行任何操作(甚至将其禁用)?这似乎是一个例子。不,按钮是用来在字段中输入数字的。当然,他们总是可以键入它们,但我添加按钮只是为了功能。“我添加按钮只是为了功能。”目前似乎不起作用。就我个人而言,我会用a来表示数字。好的,如果你认为你能更好地解决这个问题。我有三个文本字段和按钮,对应数字0-9和各种功能。我希望能够在一个文本字段中单击,从按钮中输入我的数字,在另一个字段中单击,然后从我制作的按钮中输入我的数字。如何获取用户单击的文本字段?@cblair:请参见编辑以回答问题。(皮特)好的,我想应该可以了。我从未见过setFocusable方法。我一定会试试这个,看看它是如何工作的。谢谢