如何使用动作侦听器

The*_*imp 4 java swing actionlistener

我是Swing的新手,需要一些动作听众的帮助.我看过它们像这个例子一样使用:

button.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        // Do something
    }
});
Run Code Online (Sandbox Code Playgroud)

但是我想做更像这样的事情:

button.addActionListener(myFunc);

public void myFunc(ActionEvent e) 
{
   // Do something
}
Run Code Online (Sandbox Code Playgroud)

这可能吗?

Mic*_*rry 7

这里有两种可能的方法 - 您可以直接从您给出的第一个示例中调用myFunc方法:

button.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        myFunc(e);
    }
});
Run Code Online (Sandbox Code Playgroud)

...或者您可以定义一个实现actionlistener的内部类,然后使用它:

class MyActionListener implements ActionListener {
    public void actionPerformed(ActionEvent e) { 
        //Your code
    }
}

button.addActionListener(new MyActionListener());
Run Code Online (Sandbox Code Playgroud)

在一个未来主义的笔记中,当Java 8上架时(2013年,所以不要屏住呼吸),你将能够使用闭包更简洁地做到这一点.