如何在 Java 中使用方法引用实现动作监听器?


在 Java 8 中,lambda 表达式接受匿名函数作为参数。在提供匿名方法的情况下,我们还可以使用“::”符号传递现有方法的引用方法引用使我们能够执行相同操作,但使用现有方法。

我们还可以为JButton实现动作监听器,方法是使用静态方法引用并使用类名引用。

语法

<Class-name>:: Method-name;

示例

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class MethodReferenceButtonListenerTest extends JFrame {
   private JButton button;
   public MethodReferenceButtonListenerTest() {
      setTitle("Method Reference Button Listener");
      button = new JButton("Method Reference");
      button.setBorder(BorderFactory.createLineBorder(Color.black));
      button.addActionListener(MethodReferenceButtonListenerTest :: executeMethod); // static method reference
      getContentPane().add(button, BorderLayout.NORTH);

      setSize(400, 300);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      setVisible(true);
   }
   public static void main(String args[]) throws Exception {
      new MethodReferenceButtonListenerTest();
   }
   public static void executeMethod(ActionEvent e) {
      JOptionPane.showMessageDialog(null, ((JButton)e.getSource()).getText());
   }
}

输出


更新于: 11-Jul-2020

549 次浏览

开启你的 职业生涯

完成本课程,获得认证

入门
广告
© . All rights reserved.