Java圖形界面編程知識(shí)點(diǎn)匯總一:基本概念:@.AWT(Abstract Window Toolkit):抽象窗口工具包,SUN 公司提供的用于圖形界面編程(GUI)的類庫(kù)。AWT框架不使用原生窗口部件(native widgets),,一直未能突破LCD問題,。LCD問題導(dǎo)致了一些主要平臺(tái)特征的遺失.AWT 組件具有平臺(tái)相關(guān)性.@.Swing:
Swing 是純Java 實(shí)現(xiàn)的輕量級(jí)(light-weight)組件,它不依賴系統(tǒng)的支持,Swing 組件在不同平臺(tái)具有一致性的表現(xiàn),可以解決AWT框架的LCD問題,是Sun創(chuàng)建的新框架,但是Swing應(yīng)用程序的界面外觀不再和原生應(yīng)用程序的外觀相似,。而且消耗太多的內(nèi)存,,這樣Swing不適于一些小設(shè)備.
Swing 采用了MVC(模型-視圖-控制,Model-View-Controller)設(shè)計(jì)模式,。
@.SWT(Standard Widget Toolkit):
為了徹底解決AWT和Swing框架帶來的問題,IBM創(chuàng)建了一個(gè)新的GUI庫(kù),,這就是SWT。
SWT是一個(gè)開源的GUI編程框架,,與AWT/Swing有相似的用處,,著名的開源IDE-eclipse就是用SWT開發(fā)的。SWT本身僅僅是Eclipse組織為了開發(fā)Eclipse
IDE環(huán)境所編寫的一組底層圖形界面 API,。但是SWT無(wú)論是在性能和外觀上,,都超越了SUN公司提供的AWT和Swing。目前SWT已經(jīng)十分穩(wěn)定,。
@.JFrace:
為了方便開發(fā)SWT程序,,在SWT基礎(chǔ)上又創(chuàng)建了一個(gè)更易用、功能強(qiáng)大的圖形包“JFace”,。然而,,JFace并不能完全覆蓋SWT的所有功能,所以編程時(shí)SWT,、JFace都會(huì)要用到,,但是一般來說,能用JFace的組件就最好不要用SWT的。
@.三大Java GUI開發(fā)插件:
1).Visual Editor:
Eclipse官方提供了一個(gè)叫做Visual
Editor(VE)的開源GUI插件,,功能還是比較強(qiáng),。但是缺點(diǎn)太多,可用性不強(qiáng).
2).SWT-Designer:
SWT-Designer是大家公認(rèn)的,最強(qiáng)的Eclipse下開發(fā)GUI的插件http://www./,。不過SWT-Designer是一個(gè)收費(fèi)的插件,。不收費(fèi)的是基礎(chǔ)版本,,功能受到很大的限制,。當(dāng)然,網(wǎng)上也有完整版的破解版,。
3).Jigloo:
Jigloo 是一個(gè)
Eclipse 插件,,它可用于構(gòu)建基于 Swing 的應(yīng)用程序和基于SWT的應(yīng)用程序。它是一個(gè)易于使用的可視化編輯器.
@.java.awt 包:
java.awt 包中提供了 GUI 設(shè)計(jì)所使用的類和接口,,提供了基本的 java 程序的 GUI 設(shè)計(jì)工具,。
主要包括下述三個(gè)概念:
1).組件(Component)---按鈕、標(biāo)簽,、菜單等組件的抽象基本類. 2).容器(Container)---有兩類:窗口Window(可以獨(dú)立存在)和面板Panel(必須放在其他容器內(nèi)). 而窗口類又分為框架Frame和對(duì)話框Dialog. 3).布局管理器(LayoutManager)---定義容器中組件擺放位置和大小接口.AWT
中的五種布局管理器:
邊界布局管理器(BorderLayout),流式布局管理器(FlowLayout), 網(wǎng)格布局管理器(GridLayout), 卡片布局管理器(CardLayout), 網(wǎng)格包布局管理器(GridBagLayout).
窗體(Frame,Dialog)的默認(rèn)布局為
BorderLayout(邊界布局管理器) ,。
面板()的默認(rèn)布局管理器是
FlowLayout 布局管理器。 4).Graphics(圖形類)——組件內(nèi)與圖形處理相關(guān)的類.
@.Frame和JFrame(框架):
Frame 是帶有標(biāo)題和邊框的頂層窗口,。窗體的默認(rèn)布局為 BorderLayout(邊界布局管理器) ,。 JFrame 類是AWT Frame 類的一個(gè)子類。它還加入了一些
Swing 所獨(dú)有的特性,。與 Frame 的使用十分相似,。唯一的區(qū)別在于,你不能將組件加入到JFrame中,。你可以將組件加入到 JFrame 的contentpane(內(nèi)容面板) 中,,或者提供一個(gè)新的contentpane(內(nèi)容面板)。
@.Panel和JPanel(面板):
Panel
是最簡(jiǎn)單的容器類,。不能獨(dú)立存在,必須依賴其他容器才能顯示,可放置其他組件,甚至其他面板,自然就可設(shè)置布局管理器,其默認(rèn)布局管理器是 FlowLayout
(流式布局管理器) ,。JPanel 是一般輕量級(jí)容器.@.java圖形用戶界面的構(gòu)成:
容器,控制組件和用戶自定義成分(自定義的圖形或者標(biāo)志,不能實(shí)現(xiàn)交互).
@.Java中的繪圖操作:
Java 中使用Graphics對(duì)象可以進(jìn)行各種繪圖操作。
//繼承Panel類
public class TestDraw extends Panel{
//重寫paint()方法,窗口刷新時(shí)自動(dòng)執(zhí)行paint()方法,。
public void paint(Graphics g){
g.drawOval(50,50,30,30); //畫橢圓
}
} |
|