当前位置: 首页 > 知识库问答 >
问题:

如何在ActionListener中创建类似lambda的模式

端木鹏
2023-03-14
jButton.addActionListener(ae -> callAnyMethod());
CustomButton.CustomButtonListener(placeholder method (); ) 
CustomButton.CustomButtonListener(def());

作为方法存储在CustomButton类中的ActionListener:

public void CustomButtonListener(Object object){

        addActionListener(new ActionListener(){

@Override
        public void actionPerformed(ActionEvent e) {



          // how to call the method stored in the Object "object" here? and actually run it?



            }
    });

和按钮中的代码段:

CustomButton button = new CustomButton();

button.CustomButtonListener(def());





public void def(){

    String a = "lambda!";

            System.out.print("a");



}

共有1个答案

马弘益
2023-03-14

如果我没有误解你的问题,你的语法已经正确了。

public static void main() {
    ...
    jButton.addActionListener(e -> myListener());
    ...
}
...
public void myListener(){
    dosomething();
}

这是它的简写:

public static void main() {
    ...
    MyListener myListener = new MyListener();
    jButton.addActionListener(myListener);
    ...
}

public class MyListener implements ActionListener {
    @Override
    public void actionPerformed(ActionEvent e) {
        dosomething();
    }
}

要了解更多信息,可以参考这个。

 类似资料:
  • 问题内容: 如何用Java编写等效的代码? 问题答案: 您可能还希望将类本身公开,但这实际上是将字面量转换为Java。 C ++模板和Java泛型之间还有其他区别,但是对于您的示例,这些都不是问题。

  • 问题内容: 假设我们有一个抽象的@Entity Animal,以及几个扩展Animal的实体类,包括Dog,Cat,Monkey和Bat。 如何根据扩展实体的类过滤结果? 示例 :有复选框,用户可以在其中选择要检索的实体。 现在,我想使用在类中定义的(Named)Query检索实体。我可以在查询中放入哪种查询参数,以便仅返回Cat和Monkey对象? 问题答案: 我不确定JPA是否支持它,但是在H

  • 如何在回收器视图元素之间创建项目分隔符,例如在WhatsApp中? 我尝试了下面链接中给出的SimpleItemDecorator类,但没有得到预期的结果: https://stackoverflow.com/a/41547052

  • 我试着做一个选择题,有一个单一的,正确的答案,格式类似于上图。我正在做最后一个项目,当按钮动作时,它会提示用户说多项选择题。然而,在JavaFXML中,我没有看到这样做的方法。我只在Android系统中遇到过如何做到这一点。(https://www.geeksforgeeks.org/alert-dialog-with-singleitemselection-in-android/) 非常感谢您的

  • 问题内容: 我正在使用MVC创建一个基本的计算器。到目前为止,我正在改编一个教程,该教程仅将两个用户输入的值加在一起。 目前,我要添加到视图中的每个按钮都有其自己的侦听器,可以。但是,根据教程的控制器每个按钮只有一个ActionListener内部类。这重复了大量代码。 如何为所有按下的按钮创建一个ActionListener类,并在按下的按钮的ID上使用case语句? 在视图中注册oneButt