我有两个类:主要的一个和一个名为“Window”的类。 Window类中有一些按钮,是否可以让“主”类知道发生了什么?简而言之,“Window”类中的按钮应该触发主类中的一些东西。
或者我应该在“Window”类中输入所有内容吗?
答案 0 :(得分:2)
是的,这是可能的。 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
}
}