【Head First Java】圖形用戶接口

JFrame是個代表屏幕window的對象

可以把button,checkbox,text字段等接口放在window上面。

將組件加到window上

(1)創建frame
JFrame frame = new JFrame();
(2)創建widget
(widget 英[ˈwɪdʒɪt] 美[ˈwɪdʒɪt] n. 小器具,裝飾品,窗口小部件;)
JButton button = new JButton(“click me”);
(3)把widget加到frame上
frame.getContentPane().add(button);

content 英[‘kɒntent]美[ˈkɑ:ntent]
n. 內容; 滿足; (書等的) 目錄; 容量;

pane 英[peɪn] 美[pen]
n. 窗格; 方框; 窗玻璃; 嵌板;
vt. 裝窗玻璃於; 鑲嵌板於; 用染色小布片拼做(衣服);

(4)顯示出來
frame.setSize(300, 300);
frame.setVisible(true);

監聽接口是介於監聽與事件源間的橋樑

Swing的GUI組件是事件的來源。
java.awt.event這個包中會看到一組事件。
每個事件類型都有相對應的監聽者接口,要實現接口就得聲明這件事,(聲明:鄉親們注意了!Dog實現Pet了!),必須把接口中搜友的方法都實現出來。

監聽和事件源的溝通

監聽:
如果類想知道按鈕的ActionEvent就要實現ActionListener這個接口。
因此需要調用addActionListener(this)並傳入ActionListener的引用向按鈕註冊。
按鈕在該事件發生時,調用接口上的方法。
ActionListener,編譯器要求要實現此接口的actionPerformed();

事件源:
按鈕是ActionEvent的來源,如果有對象對它的事件感興趣,那麼這個按鈕有個addActionListener()。

取得按鈕的ActionEvent

(1)實現ActionListener這個接口
(2)向按鈕註冊(告訴他你要監聽事件)
(3)定義事件處理的方法(實現接口上的方法)

內部類

內部類完全被外部類包起來
內部類能夠自由的存取外部類的內容。
內部類的實例一定會綁在外部類的實例上

class MyOuter{
    private int x;
    MyInner inner = new MyInner();

    public void doStuff(){
        inner.go();
    }
    class MyInner(){
        void go(){
            x = 42;
        }
    }
}

內部類提供了在一個類中實現同一接口的多次機會。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章