如何在 Java 中使用 lambda 表达式来实现侦听器?
当我们在 Java 侦听器中使用 lambda 表达式时,我们不必明确实现 ActionListener 接口。相反,我们可以使用以下语法。
语法
button.addActionListener(e -> { // some statements });ActionListener 接口仅定义了一个方法 actionPerformed()。它是一个 function interface,这意味着可以使用 lambda 表达式来替换代码。
示例
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class LambdaListenerTest extends JFrame {
public static void main(String args[]) {
new LambdaListenerTest();
}
private JButton button;
public ClickMeLambdaTest() {
setTitle("Lambda Expression Test");
button = new JButton("Click Me!");
button.addActionListener(ae -> button1Click()); // lambda expression for ActionListener
getContentPane().add(button, BorderLayout.NORTH);
setSize(450, 300);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
private int clickCount = 0;
public void button1Click() {
clickCount++;
if(clickCount == 1)
button.setText("Clicked!!!");
else
button.setText("Clicked " + clickCount + " times!!!");
}
}输出
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
JavaScript
PHP