我们需要确保其他类中的ActionListener可以访问需要监听的组件,并在创建其他类的对象时将ActionListener传递给它。以下是一个示例:
在主类中,我们创建一个按钮并添加ActionListener:
public class MainClass {
JButton myButton;
public MainClass() {
myButton = new JButton("Click Me");
myButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Button clicked!");
}
});
}
}
现在,我们想要从另一个类中触发按钮点击事件。为了做到这一点,我们需要创建一个其他类的对象,并将按钮的ActionListener传递给它。在其他类中,我们可以这样写:
public class OtherClass {
ActionListener myActionListener;
public OtherClass(ActionListener listener) {
myActionListener = listener;
}
public void doSomething() {
//做一些事情
//...
//当我们想要触发按钮点击事件时,我们可以这样做:
ActionEvent fakeEvent = new ActionEvent(this, ActionEvent.ACTION_PERFORMED, "");
myActionListener.actionPerformed(fakeEvent);
}
}
现在,我们可以创建一个OtherClass对象,并将按钮的ActionListener传递给它。每当我们调用doSomething()方法时,按钮的ActionListener都会被触发。