专注于一个JTextField并执行与之相关的操作

时间:2016-09-21 19:53:20

标签: java swing

我的应用程序有两个JTextField和一个JButton。

我想要一个代码片段在

  • 如果第一个TextField被聚焦/选中,该按钮会将其TextField(使用setText方法)设置为1,
  • 如果第二个TextField被聚焦/选中,该按钮会将其TextField(使用setText方法)设置为1

编辑:我想做什么(numInput,denInput都是JTextFields)

public void actionPerformed(ActionEvent e) {
        String s = e.getActionCommand();                            
        if (numInput.isFocusOwner()) {
            if (s.equals("1")) {
                if (z == 0) {
                    numInput.setText(numInput.getText() + "1");
                } else {
                    numInput.setText("");
                    numInput.setText(numInput.getText() + "1");
                    z = 0;
                }
        }
        else if (denInput.isFocusOwner()) {
            if (s.equals("1")) {
                if (z == 0) {
                    denInput.setText(numInput.getText() + "1");
                } else {
                    denInput.setText("");
                    denInput.setText(numInput.getText() + "1");
                    z = 0;
                }
        }
}

这对我不起作用。

1 个答案:

答案 0 :(得分:2)

创建一个展开Action的{​​{1}},并将此TextAction添加到您的按钮。

Action有一个TextAction方法,它将返回有焦点的最后一个文本组件。

行动的基本代码是:

getFocusedComponent()

只有在表单上只有两个文本字段时才会有效。如果您有两个以上,那么您需要添加额外的代码以确认在单击按钮之前焦点位于两个文本字段之一。