当前位置: 首页 > 面试题库 >

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

史宸
2023-03-14
问题内容

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

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

谢谢你们,

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

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

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

public void myButtonMethod() {
    // code
}

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


问题答案:

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

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        
}

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



 类似资料:
  • 问题内容: 我有两个分别称为“左”和“右”。“左”按钮将矩形对象向左移动,“右”按钮将其向右移动。我在班上有一个充当单击任一按钮时的侦听器。但是,我希望单击每个动作时都会发生不同的动作。如何区分点击的? 问题答案: 将actionCommand设置到每个按钮。 //将动作命令设置到两个按钮上。 更新:

  • 问题内容: 是否有原因导致代码中显示的动作侦听器内部?另外,如果有,我该如何解决此错误? 问题答案: 您可以使用一个不错的简单技巧… 如果未为按钮指定,则使用按钮的。 现在,如果您确实指定了按钮的属性,并且您仍然想知道文本(对我来说似乎很奇怪),则可以使用更多类似…

  • 我正在处理JButton事件。我有一个JPanel类,我们叫Panel1,包含一个公共的JButton,我们叫它Button1。单击此按钮时: 但我有兴趣: 有什么建议吗?

  • 下面的代码是项目的动作侦听器。基本上,我有 4 个单选按钮,当我单击一个时,我希望它更改屏幕上的变量。当我运行代码时,它只是将所有值相加。还有其他方法可以做到这一点吗?

  • 问题内容: 我有一个简单的GUI: 我想打印出此消息: 当GUI关闭时(按X时)。我怎样才能做到这一点? 问题答案: 试试这个。

  • 问题内容: 我很好奇这两种执行ajax调用的方式有什么区别: 和 看来人们使用第一种方法的频率更高,但是第二种方法似乎也能正常工作… 问题答案: 第一种方法允许通过返回结果进行导航,而第二种则不能。如果客户端禁用了JS,第二种方法将不会调用任何内容,而第一种方法会正常降级。确实,第一种方法被更频繁地使用。 第二种方法是组件中没有属性的唯一方法,例如等等。