如何在 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());
}
}输出
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP