1. 程式人生 > >201711671118《Java程式設計》第九章總結

201711671118《Java程式設計》第九章總結

9.1 JAVA SWING概述

       通過圖形使用者介面(GUI),使用者和程式之間可以進行互動。

       Java.awt包提供了許多原來設計GUI的元件類。

       容器類(container)和元件類(component):

       javax.swing包中的Jcomponent類是java.awt包中Container的一個直接子類,是java.awt包中的Component類的一個間接子類。

       java把Component類的子類或間接子類建立的物件成為一個元件。

       java把Container的子類或間接子類建立的物件成為一個容器。

       Container類提供public方法add(),呼叫方法將元件新增到容器中。

       removeAll()方法可以移除容器中的全部元件。

       remove(Component c)方法移除元件c。

       容器巢狀:容器也是一個元件,一個容器可以新增到另一個容器當中。

       validate()方法:當容器新增新的元件或者移除元件時,應當呼叫validate方法,以確保元件的正常顯示。

9.2  視窗

一個基於GUI的應用程式應當提供一個能和作業系統直接互動的容器,該容器可以被直接顯示、繪製在作業系統控制的平臺上,如顯示器,這樣的容器被稱為GUI設計的底層容器。Jframe類例項是一個底層容器,即視窗。當需要一個視窗時,可使用Jframe或子類建立一個物件,視窗也是一個容器,可以向視窗新增元件,不允許將視窗新增到其他容器中。

9.2.1  JFrame常用方法

Jframe()建立一個無標題視窗。

Jframe(String s)建立標題為s的視窗。

public void setBounds(int a,int b,int width,int height)設定視窗位置(a,b),左上邊為原點,寬為width,高為height。

public void setVisible(boolean b)設定視窗是否可見,預設false。

public void setResizable(boolean b)設定視窗是否可以調整大小,預設為true。

public void dispose()撤銷當前視窗,並釋放當前視窗使用的資源。

       9.2.2 選單條、選單、選單項

       Jcomponet的子類Jmenubar負責建立選單條。

       Jmenu負責建立選單。

       JmenuItem負責檢建立選單項。

       Jmenu是JmenuItem的子類,因此選單本身也是一個選單項。

       Icon宣告一個圖示,使用其子類ImageIcon類建立一個圖示:Icon icon=new ImageIcon(“a.gif”),選單項呼叫setIcon(Icon icon)方法將圖示設定為icon

9.3常用元件與佈局

9.3.1 常見元件

JTextField(文字框):允許使用者在文字框輸入單行文字

JTeextArea(文字區):允許使用者在文字區中輸入多行文字

JButton(按鈕):允許使用者單擊按鈕

JLabel(標籤):標籤為使用者提供資訊

JCheckBox(複選框):為使用者提供多種選擇

JRadioButton(單選按鈕):為使用者提供單項選擇。

JPasswordField(密碼框):使用者輸入密碼時,預設回顯為“*”.

9.3.2 常用容器(本節提到的是中間容器)

JPanel面板:JPanel建立一個面板,預設佈局:FlowLayout

JTabbedPane選項卡窗格:向容器新增一個元件時,容器會自動為該元件指定一個選項卡。個選項卡元件層疊式放入容器,單擊選項卡時,顯示相應的元件。

JScrollPane滾動窗格:滾動窗格可以新增一個元件,JTextArea不自帶滾動條,因此就需要把文字區放到一個滾動窗格,如:JScrollPane scroll=new JScrollPane(new JTextArea());

JSplitPane拆分窗格:被分成兩部分的容器,每部分有一個元件。

JLayeredPane分層窗格:如果新增容器中的元件經常需要待處理疊加問題,可以考慮將元件新增到分層窗格。

9.3.3 常用佈局

FlowLayout佈局:由左向右依次排序元件,排滿裝行,可以改變對齊方式。

BorderLayout佈局:容器分為上、下、左、右、中五個區域。

CardLayout佈局:元件測得放入容器。

GridLayout佈局:將容器劃分為等大小的網格區域。元件就位於網格中。

null佈局:空佈局,元件可以準確定位在容器的某個位置中

BoxLayout佈局:當需要容器巢狀時,使用BoxLayout佈局。

9.4處理事件

處理事件包括事件源、監視器、處理事件的介面3個概念。

事件源:能夠產生事件的物件都可以稱為事件源。

監視器:需要一個物件對事件源進行監視,以便對發生的事件作出處理。

處理事件的介面:當事件源發生事件時,監視器就會自動呼叫被類重寫的介面方法。

ActionEvent事件:文字框、按鈕、選單項、密碼框和單選框按鈕都可以觸發ActionEvent事件,即可以稱為ActionEvent事件的事件源。

ItemEvent事件:選擇框、下拉列表都可以觸發ItemEvent事件。

DocumentEvent事件:使用者在文字區中進行文字編輯操作,使得文字區的文字內容發生變化,將導致文字區所維護的文件模式中的資料發生變化,從而導致文字區所維護的文件觸發DocumentEvent事件。

MouseEvent事件:任何元件都可以發生滑鼠事件。

FocusEvent焦點事件:元件可以觸發焦點事件。

KeyEvent事件:按下、釋放、敲擊鍵盤上一個鍵就會觸發鍵盤事件。

WindowEvent事件:當一個視窗被啟用、撤銷啟用、開啟、關閉、圖示化、撤銷圖示化,觸發視窗事件。

9.5 使用MVC結構(模型-檢視-控制器)

模型:用於儲存資料的物件。

檢視:為模型提供資料顯示的物件

控制器:處理使用者的互動操作

9.6 對話方塊

對話方塊分為無模式和有模式兩種。當這個對話方塊處於啟用狀態時,只讓程式響應對話方塊內部的事件,而且將堵塞其它執行緒的執行,使用者不能再啟用對話方塊所在程式中的其它視窗,直到該對話方塊消失不可見。無模式對話方塊:當這個對話方塊處於啟用狀態時,能再啟用其它視窗,也不堵塞其它執行緒的執行。