天天看點

Java GUI總結

AWT(Abstract Window Tookit),重量級,對系統依賴性較強。

Swing,輕量級,對系統依賴性較弱。

XWT ,Exclipse的圖形界面形式。

布局管理器:

FlowLayout(流式布局管理器)

  從左到右的順序排列。Panel預設的布局管理器。

BorderLayout(邊界布局管理器)

 東、南、西、北、中。Frame預設的布局管理器。預設居中 。每個區域隻能加入一個元件,如果加入多個則先前加入的元件會被遺棄。當視窗縮放時,按鈕相應的位置不變化,但其大小改變。

GridLayout(網格布局管理器)

  規則的矩陣。用許多行和欄來建立管理程式,然後元件就填充到有管理程式規定的單元中。例如:new GridLayout(3,2)建立的有三行兩欄的Grid布局能産生六個單元。Grid布局管理器總是忽略元件的最佳大小,所有單元的寬度和高度是相同的。

CardLayout(卡片布局管理器)

  頁籤。

GridBagLayout(網格包布局管理器,貌似多個網格合并成 一個)

  非規則的矩陣。

5.建立圖形化界面的一般步驟:

1)建立frame窗體。

2)對窗體進行基本設定。

 比如大小,位置,布局。

3)定義元件。

4)将元件通過窗體的add方法添加到窗體中。

5)讓窗體顯示,通過setVisible(true)

6.事件監聽機制的特點:

1)事件源。

2)事件。

3)監聽器。

4)事件處理。

事件源:就是awt包或者swing包中的那些圖形界面元件。

事件:每一個事件源都有自己特有的對應事件和共性事件。

監聽器:将可以觸發某一個事件的動作(不隻一個動作)都已經封裝到了監聽器中。

以上三者,在java中都已經定義好了。

直接擷取其對象來用就可以了。

我們要做的事情是,就是對産生的動作進行處理。

Container,它是Component的一個子類,而且包括兩個主要的子類:Panel ,window

Window有兩種形式:Frame(架構)和Dialog(對話框)。Frame和Dialog是Window的子類。Frame是一個帶有标題和縮放角的視窗。對話框沒有菜單條,盡管他能移動但不能縮放。

Panel是Java.awt.Panel的對象。Panel包含在另一容器中,或是在web浏覽器的視窗中。Panel确定一個四邊形,其他元件可以放入其中。Panel必須放在Window之中(或Window的子類中)以便能顯示出來。容器不僅能容納元件也能容納容器。

因為布局管理器負責容器裡的元件的位置和大小,是以不需要總是自己去設定組建的大小和位置。

如果必須控制組建的大小或位置,而是用标準布局管理器做不到,那就可能通過将下述方法調用發送到容器中來中止布局管理器:setLayout(null).做完這一步必須對所有的元件使用setLocation(),setSize()或setBounds(),來将它們定位在容器中。請注意,由于視窗系統和字型大小之間的不同,這種辦法将導緻從屬于平台的布局。更好的途徑是建立布局管理器的新子類。

Frames是window的子類,能以字元串規定的标題來建立不可見架構對象。能将BorderLayou當做預設布局管理器。setLayout方式來改變預設布局管理器。

架構類中的構造程式Frame( String )用由String規定的标題來建立一個新的不可見的架構對象。當它還處于不可見狀态時,将所有元件添加到架構中。

Panel為元件提供空間,允許子面闆擁有自己的布局管理器。以add方法添加元件。一旦一個面闆對象被建立,為了能看得見,他必須添加到視窗或架構對象上。用Container類中的add()方式可以做到這一點。

如果想在元件之間建立一個更大的最小間隔,可以規定一個界限。

當使用者對Flow布局管理的區域進行縮放時,布局就發生變化。

下面的例子就是如何用類容器的setLayout()方法來建立Flow布局對象并安裝它們:setLayout(new FlowLayout(int align,int hgap, int vgap))。(align預設為居中對齊。hgap和vgap的預設值是5。)對齊的值必須是FlowLayout.LEFT,FlowLayout.RIGHT,或FlowLayout.CENTER。

例如:setLayout(new FlowLayout(FlowLayout.RIGHT,20,40)).   表示 右對齊,元件之間水準間距20個像素,豎直間距40個像素。

幾個具有典型代表意義的事件:

類 對應事件 說明

MouseEvent 滑鼠事件 滑鼠按下,滑鼠釋放,滑鼠點選

WindowEvent 視窗事件 點選關閉按鈕,視窗得到與失去焦點,視窗最小化

ActionEvent 動作事件 不代表具體的動作,是一種語義,如按鈕或菜單被滑鼠單擊,單行文本框中按下Enter鍵等都可以看作是ActionEvent事件。

可以這麼了解,如果使用者的而一個動作導緻了某個元件本身最基本的動作發生了,這就是ActionEvent事件。