如何在 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());
   }
}

輸出


更新於: 11-Jul-2020

549 次瀏覽

開啟你的 職業生涯

完成本課程,獲得認證

入門
廣告