假设我们有两个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/