看板 java 關於我們 聯絡資訊
下面是書上的範例 是改寫成匿名類別來實作傾聽者 不太懂為什麼這種寫法 為何可以省略「implements ActionListener」 thank import javax.swing.*; import java.awt.event.*; public class AnonymousListener extends JFrame { int act = 0; // 用來記錄按鈕被次數的變數 public static void main(String[] args) { AnonymousListener test = new AnonymousListener(); } // 用建構方法建立元件、將元件加入視窗、顯示視窗 public AnonymousListener() { setTitle("Listener 示範"); JButton mybutton = new JButton("換個標題"); // addActionListener() 的參數為匿名類別物件 mybutton.addActionListener( // 以下建立的匿名類別物件為按鈕物件的傾聽者 new ActionListener() { public void actionPerformed(ActionEvent e) { act++; // 將按鈕次數加 1 setTitle("發生 " + act + " 次按鈕事件"); } } ); getContentPane().add(mybutton); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(420,140); setVisible(true); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.65.89.53 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1437661767.A.837.html
ssccg: new ActionListener() { } 會被compiler轉成 07/23 23:02
ssccg: class AnonymousListener$1 implements ActionListener 07/23 23:03
ssccg: 這就叫匿名類別 07/23 23:04
cha122977: 直接用一個匿名類並且馬上實作,所以不用取新class名 07/23 23:24
THANK 我再仔細研究 ※ 編輯: dharma (210.65.89.53), 07/24/2015 21:04:50