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