Java Learning (9)

來源:互聯網
上載者:User

標籤:

事件處理:

ActionEvent && WindowEvent:

ActionEvent -- 包含一個ACTION_PERFORMED。觸發的動作有單擊button,雙擊選項,選擇指定功能表項目,斷行符號鍵輸入等。

addActionListener(<al>) -- al ->ActionListener or a class implements ActionListener。 

button.addActionListener(new ActionListener(){    public void actionPerformed(ActionEvent event){buttonPanel.setBackground(backgroundColor);    }});

上述代碼相當於聲明一個類實現ActionListener介面然後在類中實現actionPerformed方法。其中backgroundColor應該被定義為final。

為什麼這樣做,因為java編譯器在進行編譯的時候會自動產生構造器,換言之就會多產生一個類,如所示,類檔案“ButtonFrame$1.class”,而在值傳遞時候被傳遞的值一旦被賦值是不允許在發生更改的,要不會出現不一致的情況。

EventHandler -- create() 可以用於動態建立監聽器。作用對象必須是public, 否則構建失敗。

EventHandler.create(Class actionInterfaceClass, Object Target, String actionList, String PrpertiesList);

actionList,PropertiesList -- "action.action1.action2..." &&  "Para1. Para2." 用點好隔開多個元素。(不是很懂-- 待補充)

Listener是用於監控event的,內含actionPerformed方法是處理event的。

JComponent && JPanel: 

JComponent是斯普皮Swing組件(除了最上層的組件)的容器。

JPanel是JComponent的一種,是一種輕量級的容器,有很多種布局,在Java API中的繼承順序是: Java.awt.Container --> javax.swing.JComponent --> javax.swing.JPanel

事件處理的核心是:一個對象添加一個監聽器用於對某個Action事件進行處理:

object.addActionListener(new ActionListener(){}); (匿名內部類 -- 定義一個實現了ActionListener介面的類的對象)

    --> object.addActionListener(new ActionListener(){ public void actionPerformed(){} });

       --> object.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event){} });

所以根源在於定義一個Action,並且定義好一個處理Action的方法 (new ActionSample implements ActionListener { public void actionPerformed(ActionEvent event){}}),然後在定義某對象執行個體的時候用 smpleObject.addActionListener(ActionSample);來對執行個體添加事件處理監聽器。

一個Java名詞:適配器類。適用範圍,定義的介面中有諸多方法,但用於實現該介面的類只需要介面中定義的一部分方法,所以這時候需要一個類來實現這個介面作為一個適配器類,在該適配器類中所有介面種方法實現均為空白,這樣原來需要實現這個介面的類就可以通過繼承該適配器類而達到只對部分類進行重寫,避免內容冗餘。聯想到匿名內部類,首先匿名內部類是用於定義一個實現了某個借口或者繼承了某個類的類的對象,因此如果設定一個實現了某個借口的適配器類,然後將該適配器類應用於匿名內部類,就可以避免在匿名內部類的定義部分實現很多沒有必要的方法,從而美觀java代碼以及提高可讀性。

語義事件:描述使用者動作的事件,如點擊按鈕;

低級事件:組成語義事件的事件,例如點擊按鈕過程中的移動滑鼠,抬起滑鼠,按下滑鼠按鍵;

 

Java Learning (9)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.