如何在 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!!!"); } }
輸出
廣告