如何在 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