如何在Java中手动调用actionPerformed?

How to manually invoke actionPerformed in Java?

当我们单击(比方说)JButton 时,将调用class ActionListener 的方法actionPerformed。我想在程序中手动 运行 这个方法。可能吗? 这是一个例子:

button.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        // do something
    }  
});

当我点击 button 时调用此 actionPerformed。有没有另一种方法可以在我的程序中使用一行代码手动调用它?

您可以:

  • 在按钮上调用 .doClick()
  • 简单地在方法上调用 actionPerformed(null) ...如果方法是匿名的则困难 class
  • 在 JButton 上调用 getActionListeners() 并遍历返回的 ActionListener[] 数组,调用每个侦听器的 actionPerformed 方法
  • 或者让监听器自己调用主程序可以调用的方法(我的首选方式):
public void someMethod() {
    // has code that the listener needs done
}
button.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        someMethod();  // call it here in the listener
    }  
});
// in another part of the code, call the same method
someMethod();