Java語言中的GUI總結

1、GUIjava

  一、GUI的概念編程

    GUI(Graphical User Interface)即圖形用戶界面,它可以使應用程序看上去更加友好。多線程

  二、AWT、Swing以及SWT併發

    AWT(Abstract Windows Toolkit)是Java語言中最原始的GUI工具包,相關API位於java.awt包中。AWT是一個很是有限的GUI工具包,好比樹、表格等都不支持;框架

    然而AWT卻沒法實現。AWT運行時,每一個組件都要依賴於當前平臺的GUI對等體(peer)控件,所以,AWT GUI 的外觀和行爲就會依賴當前平臺。函數

  三、java.awt包工具

    java.awt包是Java內置的包,屬於Java基礎類庫(JFC)的一部分,其中包括如下內容;佈局

    便於用戶輸入的一組豐富的界面組件;學習

    將組件放置在適當位置的幾種佈局管理器;線程

    事件處理模型;

    圖形和圖像工具等等。

  四、經常使用的基本Swing組件

    在Swing編程中,有一些常常要使用到的組件,其中包括:

    JFrame(窗體,框架)、JPanel(面板,容器)、JButton(按鈕)、JLabel(標籤)、JTextField(文本框)、JTextArea(文本域)。

  五、建立GUI的步驟總結

    分析GUI中須要使用的組件;

    將GUI分紅幾個部分,每一個部分使用JPanel佈局。每一個JPanel能夠根據狀況使用不一樣的佈局管理器;

    將多個JPanel佈局到一個JFrame上。

2、Swing事件監聽快速入門

  一、事件處理

    對於採用了圖形用戶界面的程序來講,事件控制是很是重要的;

    到目前爲止,咱們編寫的圖形用戶界面程序都僅僅只是完成了界面,而沒有任何實際的功能,要實現相應的功能,必須進行事件處理;

    用戶與GUI組件進行交互就會發生事件,如:按下一個按鈕、用鍵盤輸入一個字符、點擊鼠標等等;

    當前咱們要關注的並非「事件是如何產生的」,而是討論當發生事件後,咱們應當「如何處理之」。

  二、事件處理模型

    Java中,事件處理的基本思路以下:

    一個源(事件源)產生一個事件(事件對象)並把它送到監聽器那裏,監聽器只是簡單地等待,直到它收到一個事件,一旦事件被接受,監聽器將處理這些事件;

    一個事件源必須註冊監聽器以便監聽器能夠接受關於一個特定事件的通知。

  三、事件源與事件

    當在一個圖形用戶界面點擊鼠標或者按下鍵盤時,都是針對於具體組件而發生的動做,如:使用鼠標點擊某個按鈕;按下鍵盤向文本框輸入內容等等;

    咱們把動做所操縱的對象稱爲事件源,請注意:事件源必定是指某個組件;

    當針對於事件源發生動做時,就會產生一個事件。

  四、監聽器與監聽器接口

    針對每一類型的事件,都有與之相對應的監聽器,用於監聽事件的發生;

    在Java中,監聽器由一系列接口來提供;

    實際上,事件監聽器就是實現了事件監聽接口的類,監聽器不斷監聽事件源的動做,當事件源產生一個事件後,監聽器接收到事件源的通知,就調用特定的方法,以執行指定的動做;

    特定的事件監聽器只對特定的事件感興趣。

  五、事件類型

    實際上,事件是區分類型的,如:操做鼠標時會產生鼠標事件,使用鍵盤輸入字符時會產生鍵盤事件,窗體打開或關閉時會產生窗體事件等等;

    對於不一樣類型的事件會有不一樣類型的監聽器與之對應;

    java.awt.event包中包含了一系列監聽器接口,分別用來處理不一樣類型的事件。

  六、事件對象

    Java中的全部事件都被封裝在事件對象中,全部事件對象皆派生自EventObject類;

    對於不一樣的事件類型會有不一樣的事件對象,它們都以相似於XxxEvent的方式命名,如:ActionEvent、MouseEvent等等;

    事件對象中包含有事件發生時的相關信息(即事件觸發時產生的一些數據),會被事件底層機制傳遞到事件處理函數中;

    實際上事件對象就是事件處理函數中被傳遞進來的參數,若是在處理事件的過程當中須要使用到相關的某些數據,能夠從事件對象中獲取。

3、內部類

  一、定義.

    內部類是Java獨有的一種語法結構,即在一個類的內部定義另外一個類,如:

    public class ExteriorClass {

       private class InteriorClass {   

      }

     }

    此時,內部類InteriorClass就成爲外部類ExteriorClass中的成員,訪問權限遵循類成員的訪問權限機制,能夠是public、protected、缺省和private;

    內部類能夠很方便地訪問外部類中的其它成員;

    內部類主要爲了解決類成員間相互訪問的問題。

4、匿名內部類

  匿名類其實就是一種比較特殊的內部類,只是這個類沒有名字而已;

  匿名類與內部類類似,可以訪問到外部類中的全部成員;

  不少狀況下(特別是在事件處理中),匿名類通常被定義在外部類的某個方法中,因此也被稱爲局部內部類,對於局部內部類,它還能夠訪問到這個方法的參數;

  在適當的狀況下,使用匿名類來實現事件處理,會使代碼更簡潔,更靈活;

  只能使用一次。

5、GUI中的併發任務

  在GUI中,經常可能須要處理併發任務,例如,聊天室應該能夠支持傳遞文件的功能,而傳遞文件的同時能夠繼續聊天;

  修改 清空聊天記錄 事件處理,使其死循環,模擬須要很長時間,可見清理過程當中,不能作其餘操做;

  使用多線程編程,將解決該問題,後續學習。

相關文章
相關標籤/搜索