資源描述:
《基于swing的圖形用戶界面設(shè)計方案》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第10章基于Swing的圖形用戶界面設(shè)計?本章導讀☆AWT組件與SWING組件☆JFrame窗體、菜單組件、布局設(shè)計☆中間容器、文本組件☆按鈕與標簽組件、復選框與單選按鈕組件☆列表組件、表格組件、樹組件和進度條組件☆窗口事件、鼠標事件、焦點事件和鍵盤事件☆對話框☆AWT線程與計時器☆MVC設(shè)計模式☆發(fā)布應用程序110.1AWT組件與SWING組件概述Java早期進行用戶界面設(shè)計時,使用java.awt包中提供的類?!癆WT”就是AbstracWindowToolkit(抽象窗口工具包)的縮寫。Java2(JDK1.2)推出之后,增加了一個新的jav
2、ax.swing包,該包提供了功能更為強大的用來設(shè)計GUI界面的類。Java早期的java.awt包中的類創(chuàng)建的組件習慣上稱為重組件。例如,當用java.awt包中的Button類創(chuàng)建一個按鈕組件時,都有一個相應的本地組件在為它工作(稱為它的同位體)。javax.swing包為我們提供了更加豐富的、功能強大的組件,稱為SWING組件,其中大部分組件是輕組件,沒有同位體。SWING組件的輕組件在設(shè)計上和AWT完全不同,輕組件把與顯示組件有關(guān)的許多工作和處理組件事件的工作交給相應的UI代表來完成。這些UI代表是用Java語言編寫的類,這些類被增加到Ja
3、va的運行環(huán)境中,因此組件的外觀不依賴平臺,不僅在不同平臺上的外觀是相同的,而且較組件有更高的性能。如果Java運行環(huán)境低于1.2版本,就不能運行含有SWING組件的程序。2圖10.1JComponent類的部分子類以及JFrame類和JDialog類3容器類(Container)和組件類(Component)Java把由Component類的子類或間接子類創(chuàng)建的對象稱為一個組件;把由Container的子類或間接子類創(chuàng)建的對象稱為一個容器?!艨梢韵蛉萜魈砑咏M件。Container類提供了一個public方法add(),一個容器可以調(diào)用這個方法將組
4、件添加到該容器中?!粽{(diào)用removeAll()方法可以移掉容器中的全部組件,調(diào)用remove(Componentc)方法可以移掉容器中參數(shù)指定的組件?!裘慨斎萜魈砑有碌慕M件或移掉組件時,應該讓容器調(diào)用validate()方法,以保證容器中的組件能正確顯示出來。容器本身也是一個組件,因此可以把一個容器添加到另一個容器中實現(xiàn)容器的嵌套。javax.swing包中有4個最重要的類JApplet,JFrame,JDialog和JComponent。注:JComponent類的子類都是輕組件,JComponent類是java.awt包中Container類的
5、子類,因此所有的輕組件也都是容器。而JFrame、JApplet、JDialog都是重組件,即有同位體的組件,這樣窗口(JFrame)、對話框(JDialog)、小應用程序(JavaApplet)可以和操作系統(tǒng)交互信息。輕組件必須在這些容器中繪制自己,習慣上稱這些容器為SWING的底層容器。410.2JFrame窗體javax.swing包中的JFrame類是java.awt包中Frame類的子類,因此JFrame類其子類創(chuàng)建的對象是窗體。當應用程序需要一個窗口時,可使用JFrame或其子類創(chuàng)建一個對象。窗口默認地被系統(tǒng)添加到顯示器屏幕上,因此不允
6、許將一個窗口添加到另一個容器中。Frame類常用方法如下:◆JFrame()創(chuàng)建一個無標題的窗口?!鬔Frame(Strings)創(chuàng)建一個標題為s的窗口?!魀ublicvoidsetBounds(inta,intb,intwidth,intheight)設(shè)置出現(xiàn)在屏幕上時的初始位置為(a,b),即距屏幕左面a個像素、距屏幕上方b個像素;窗口的寬是width,高是height。◆publicvoidsetSize(intwidth,intheight)設(shè)置窗口的大小,在屏幕出現(xiàn)默認位置是(0,0)?!魀ublicvoidsetVisible(bool
7、eanb)設(shè)置窗口是可見還是不可見,窗口默認是不可見的。◆publicvoidsetResizable(booleanb)設(shè)置窗口是否可調(diào)整大小,窗口默認是可調(diào)整大小的?!魀ublicvoidsetDefaultCloseOperation(intoperation)該方法用來設(shè)置單擊窗體右上角的關(guān)閉圖標后,程序會做出怎樣的處理。其中的參數(shù)operation取下列有效值:1)DO_NOTHING_ON_CLOSE什么也不做2)HIDE_ON_CLOSE隱藏當前窗口3)DISPOSE_ON_CLOSE隱藏當前窗口,并釋放窗體占有的其他資源4)EXIT
8、_ON_CLOSE結(jié)束窗體所在的應用程序這4個常量都是JFrame類中的static常量,單擊關(guān)閉圖標后,程序根據(jù)oper