一尘不染

使JButton的动作侦听器作为方法?

java

我怎样才能使它ActionListener成为特定方法JButton
(我知道可以用一种方法将其全部抛弃,是的。

myJButton.addActionListener(new ActionListener()
{
    public void actionPerformed(ActionEvent e){
       //do stuff
    }
 });

谢谢你们,

编辑:谢谢大家的快速反应,我的解释不是很清楚。

我调查了lambda的使用,这几乎是我在想的,尽管其他方式也很不错。

myButton.addActionListener(e -> myButtonMethod());

public void myButtonMethod() {
    // code
}

再次谢谢大家。
下次我会尝试变得更清晰,更快捷。


阅读 189

收藏
2020-12-03

共1个答案

一尘不染

同样,您的问题仍然不清楚。您上面的代码 一种方法,可以将代码放入其中:

button1.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {
        // you can call any code you want here
    }
});

或者,您可以从该方法中调用外部类的方法:

button1.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {
        button1Method();
    }
});

// elsewhere
private void button1Method() {
    // TODO fill with code        
}

或者您可以从该代码中调用内部匿名类的方法

button1.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {
        button1Method();
    }

    private void button1Method() {
        // TODO fill with code
    }
});

或者您可以使用lambda:

button2.addActionListener(e -> button2Method());

// elsewhere
private void button2Method() {
    // TODO fill with code
}

或者您可以使用方法参考:

button3.addActionListener(this::button3Method);

// elsewhere
private void button3Method(ActionEvent e) {
    // TODO fill with code        
}

由您自己决定清楚您要执行的操作是什么以及阻止您执行操作的是什么。

2020-12-03