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

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

TL; DR

我如何找出以前关注的文本字段,以便我知道将数字放入其中。

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

最佳答案

您的问题似乎是the X Y problem的一个示例,您可以集中精力进行处理,好像它是主要问题,而对我而言,真正的问题似乎是确保用户在进行计算之前已输入所有数据。

我建议不要担心焦点。使用DocumentListeners检查JTextField是否为空,并禁用“计算”​​按钮,直到所有JTextField中都包含一些文本为止。我认为关注焦点对此并不重要。

编辑
您声明:


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


好的,那可以帮助我更好地了解您的问题。一种可能的解决方案:通过在每个JButton上调用myButton.setFocusable(false)来使JButton无法聚焦。然后,按下按钮不会从JTextField中删除焦点。

10-02 00:08
查看更多