Java actionlistener actionPerformed在不同的类中

时间:2013-10-16 15:08:19

标签: java class actionlistener

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

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

1 个答案:

答案 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
    }
}