Java actionlistener action在不同的类中执行

我有两个类:主要的一个和一个叫做“Window”的类。 Window类中有一些按钮,是否可以让“主”类知道发生了什么? 简而言之,“Window”类中的按钮应该触发主类中的一些东西。

或者我应该在“Window”类中输入所有内容?

对的,这是可能的。 ActionListener是接口,因此您可以让“main”类实现此接口,并将其作为Windows类构造函数中的参数传递给Window类。
以下代码段可以帮助您:

主要课程:

 package test; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class Main implements ActionListener { @Override public void actionPerformed(ActionEvent e) { //button clicked, so do you job here } } 

Windows类:

 package test; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JPanel; public class Window extends JPanel { public Window(ActionListener listener) { JButton b = new JButton("Button 1"); b.addActionListener(listener); add(b); //do other stuff } public static void main(String[] args) { Window w = new Window(new Main()); //continue with initialization process } }