資源描述:
《java 圖形界面設(shè)計》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第12章圖形界面設(shè)計本章主要內(nèi)容12.1圖形用戶界面設(shè)計12.2圖形用戶界面工具包—Swing12.3創(chuàng)建組件12.4布局管理器212.1圖形用戶界面設(shè)計圖形用戶界面(GraphicsUserInterface,GUI)用圖形的方式,借助菜單。按鈕等標(biāo)準(zhǔn)界面元素和鼠標(biāo)操作,幫助用戶方便地向計算機系統(tǒng)發(fā)出指令、啟動操作,并將系統(tǒng)運行的結(jié)果同樣以圖形方式顯示給用戶的技術(shù)。Java的GUI程序設(shè)計是Java程序設(shè)計的基礎(chǔ)。312.1圖形用戶界面設(shè)計Java提供的兩個處理圖形用戶界面的類庫:Java.awt包
2、和javax.swing包Sun已經(jīng)提供了一個跨平臺GUI開發(fā)工具包java.awt(抽象窗口工具箱)Sun又開發(fā)了一個新的GUI開發(fā)工具包javax.swing解決了awt中存在的本地化問題412.1圖形用戶界面設(shè)計AWT和Swing是Java設(shè)計GUI用戶界面的基礎(chǔ).與AWT的重量級組件不同,Swing中大部分是輕量級組件。正是這個原因,Swing幾乎無所不能,不但有各式各樣先進(jìn)的組件,而且更為美觀易用.所以一開始使用AWT的程序員很快就轉(zhuǎn)向使用Swing了。但是因為Swing是架構(gòu)在AWT之上的,
3、沒有AWT就沒有Swing。所以程序員可以根據(jù)自己的習(xí)慣選擇使用AWT或者是Swing。但是,最好不要二者混用——除開顯示風(fēng)格不同不說,還很可能造成層次(Z-Order)錯亂512.2圖形用戶界面工具包—SwingJava圖形用戶界面的基本元素包括:用戶界面組件(組件類)事件處理模塊(事件類)圖形和圖像工具(圖形類、圖像類)布局管理器(布局類)它們主要都在javax.swing包中,Swing是Java包的一部分。6712.2.1Swing組件分類組件:構(gòu)成圖形用戶界面的各種元素。構(gòu)建圖形用戶界面的類可
4、以分成三組:容器類(containerclass)輔助類(helperclass)組件類(componentclass)。812.2.1Swing組件分類容器類容器類組件中可以包含其他組件,也可以包含其他容器。容器又分為兩種:頂層容器和非頂層容器。頂層容器是可以獨立的窗口,Swing的頂層容器有JFrame、JApplet和JDialog等。非頂層容器,不是獨立的窗口,它們必須位于窗口之內(nèi),非頂層容器包括JPanel及JScrollPanel等。912.2.1Swing組件分類輔助類和組件類都屬于非容器
5、類組件不能包含其他組件的組件,其種類較多。輔助類輔助類是用來描述組件屬性的,輔助類通常包含在java.awt包中,Swing組件不能取代AWT的全部類,只能替代AWT的GUI組件類,AWT輔助類保持不變。組件類所有SwingGUI組件類(除JFrame、JApplet和JDialog)都是JComponent類的子類,例如,JButton、JTextField、JTextArea、JComboBox、JList、JRadioButton和JMenu等。Swing輕型組件分類參見教材P202表12.110
6、12.2.1Swing組件分類一般獨立應(yīng)用程序主要是要框架JFrame作為容器,在JFrame上通過放置JPanel面板來控制圖形界面的布局;如果應(yīng)用到瀏覽器中,則主要使用JApplet來做容器。JApplet是一個能夠嵌入到瀏覽器中運行的特殊容器。1112.2.1Swing組件分類1.Swing容器的層次關(guān)系一般的Swing窗口,實際上包含幾個“層次”。1212.2.1Swing組件分類1.Swing容器的層次關(guān)系一般的Swing窗口,實際上包含幾個“層次”,各個層的關(guān)系如教材P202圖12.2所示。
7、頂層容器。是一個窗口容器對象,該對象包含了Swing窗口的各個層次,在該對象里面可以加入其它窗口對象。根窗格。是在創(chuàng)建頂層容器后自動創(chuàng)建的,供Swing頂層容器在后臺使用,是頂層容器中做包含的最內(nèi)層,通常無法在這一層上做任何操作與處理。分層窗格。加入分層窗格中的組件可以設(shè)置其圖層層次,且不會被內(nèi)容窗格中的對象屏蔽。是其它窗格的父級。1312.2.1Swing組件分類菜單欄。菜單欄被添加到分層窗格的頂部。是可選的。內(nèi)容窗格。是分層窗格中的某一層,是一個JPanel對象,在窗體中起著工作區(qū)的作用??梢苑胖么?/p>
8、部分的可見組件。玻璃窗格。主要用來產(chǎn)生繪圖效果,以及用來觸發(fā)窗口程序的各種事件。玻璃窗格浮在最上面,默認(rèn)情況下是隱藏的。1412.2.1Swing組件分類1512.2.1Swing組件分類2.框架類JFrame是Java應(yīng)用程序的頂層容器。JFrame是java.awt.Frame的擴展版本,是一個window子類,在使用Swing類庫實現(xiàn)用戶圖形接口,必須繼承該類。JFrame容器包括窗口標(biāo)題、窗口外觀、窗口邊界、調(diào)整窗口大小的圖標(biāo)、關(guān)閉