假设我们有两个JButton对象,分别捕获“计算”和“退出”。为了不创建由ActionListener实现的类,我们将整个类由ActionListener进行补充,并且ActionPerformed方法如下所示:

public void actionPerformed(ActionEvent e) {

    if (e.getActionCommand().equals("Calculate"))
        // do what "calculate" button does
    else if (e.getActionCommand().equals("Exit"))
        System.exit(0);

}


我的问题是,如果我们有两个文本字段(JTextField),该怎么办?我们应该如何重写actionPerformed方法?用户在该字段中按Enter键后,返回JTextField名称的方法是什么?

最佳答案

为了不创建由ActionListener实现的类...


您不应该使用单个侦听器。相反,您应该为要实现的每个功能使用单独的侦听器。


  我的问题是,如果我们有两个文本字段(JTextField),该怎么办?


可以将自定义的TextAction添加到文本字段中,而不是将ActionListener添加到文本字段中。 TextAction支持getFocusedComponent()方法,该方法将返回当前具有焦点的文本字段。这就是在文本组件上实现所有Swing Actions的方式。

对于一个简单的示例,您可以签出:What text input component last had the focus?

关于java - ActionListener JTextField Java,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42738898/

10-13 04:40