JavaSwing圖形界面開發(fā)(第3章)_第1頁
JavaSwing圖形界面開發(fā)(第3章)_第2頁
JavaSwing圖形界面開發(fā)(第3章)_第3頁
JavaSwing圖形界面開發(fā)(第3章)_第4頁
JavaSwing圖形界面開發(fā)(第3章)_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、1第第3章章Java Swing組件基礎(chǔ)組件基礎(chǔ)2-用來構(gòu)成一個用來構(gòu)成一個圖形化界面圖形化界面的的“各種元素各種元素”。如:如:按鈕按鈕、標(biāo)簽標(biāo)簽、樹樹、表格表格以及以及框架框架等。等。 且每個組件又會擁有且每個組件又會擁有不同形態(tài)不同形態(tài)( (以滿足不同用戶需要以滿足不同用戶需要) ),是構(gòu)成圖形化界面最基本的元素。是構(gòu)成圖形化界面最基本的元素。Java SwingJava Swing組件組件3目的目的:了解整個:了解整個Java SwingJava Swing組件類的框架。組件類的框架。主要介紹主要介紹Java SwingJava Swing組件的一些組件的一些基礎(chǔ)知識基礎(chǔ)知識,包括:,

2、包括: SwingSwing組件類的繼承組件類的繼承 頂層類的結(jié)構(gòu)頂層類的結(jié)構(gòu) 頂層容器類的使用頂層容器類的使用 內(nèi)容面板的使用內(nèi)容面板的使用 如何在頂層容器中添加菜單欄如何在頂層容器中添加菜單欄 JComponentJComponent類的相關(guān)知識類的相關(guān)知識4回顧:回顧:AWTAWT組件類組件類的層次的層次( (繼承繼承) )結(jié)構(gòu)結(jié)構(gòu)53.1 Swing3.1 Swing組件類的層次組件類的層次 6從以上結(jié)構(gòu)圖可知,從以上結(jié)構(gòu)圖可知,SwingSwing組件類可分成組件類可分成兩種類型兩種類型: JComponentJComponent類類 WindowWindow類類其中:其中: Win

3、dow Window組件類組件類-包括一些包括一些“可獨立顯示可獨立顯示”的組件。的組件。 JComponent JComponent組件類組件類-包括一些包括一些“不能獨立顯示不能獨立顯示”的組的組件。件。簡要說明:簡要說明:7 可獨立顯示的組件可獨立顯示的組件 當(dāng)運行一個程序時,這個組件當(dāng)運行一個程序時,這個組件無須托付無須托付在其它組件上就可在其它組件上就可以顯示,即能夠直接顯示出來。以顯示,即能夠直接顯示出來。 如:如:“JFrameJFrame類類”,無須依靠任何其它組件即可獨立顯示,無須依靠任何其它組件即可獨立顯示。 不可獨立顯示的組件不可獨立顯示的組件 必須依靠必須依靠可獨立顯示

4、的組件才能顯示??瑟毩@示的組件才能顯示。 如:如:“文本框組件、按鈕組件文本框組件、按鈕組件”必須依托在必須依托在JFrameJFrame框架組框架組件上才能顯示出來。件上才能顯示出來。8“Javax.swing“Javax.swing包包”中的中的SwingSwing組件共有組件共有三種類型三種類型: 頂層頂層組件組件 中間中間組件組件 基本基本組件組件 頂層組件頂層組件-又被稱為又被稱為“頂層容器頂層容器”; 中間組件中間組件-又分為又分為“中間容器中間容器”和和“特殊中間組件特殊中間組件”。按功能上劃分按功能上劃分910各組件類型含義各組件類型含義1 1、頂層容器、頂層容器 如:如:J

5、FrameJFrame、JAppletJApplet、JDialogJDialog、JWindowJWindow; 可理解為可理解為“Window”Window”組件,指組件,指能夠獨立顯示能夠獨立顯示的組件。的組件。2 2、中間容器、中間容器 如:如:JPanelJPanel、JScrollPaneJScrollPane、JSplitPaneJSplitPane、JToolBarJToolBar; 指那些可充當(dāng)載體,但也指那些可充當(dāng)載體,但也不能獨立顯示不能獨立顯示的組件。的組件。 即可將一些基本控件放在其中,但卻不能獨立顯示,即可將一些基本控件放在其中,但卻不能獨立顯示, 必須要依托在頂層

6、容器內(nèi)方能顯示。必須要依托在頂層容器內(nèi)方能顯示。 113 3、特殊容器、特殊容器 如:如:JInternalFrameJInternalFrame、JLayeredPaneJLayeredPane、JRootPaneJRootPane 作為一種中間容器類,是作為一種中間容器類,是GUIGUI上起上起特殊作用特殊作用的中間層,只的中間層,只是在圖形上更能起到是在圖形上更能起到“美化美化”和和“專業(yè)化專業(yè)化”的作用。的作用。4 4、基本組件、基本組件 如:如:JButtonJButton、JComboBoxJComboBox、JListJList、JMenuJMenu、JSliderJSlider

7、、JTextFieldJTextField。 主要用于實現(xiàn)人機交互的組件。指那些只能依托在中間主要用于實現(xiàn)人機交互的組件。指那些只能依托在中間容器上才能被顯示的組件,而容器上才能被顯示的組件,而不能獨立存在不能獨立存在。12“基本組件基本組件”程序示程序示例:例:13運行結(jié)果:運行結(jié)果:? ?14說明:說明:運行結(jié)果沒有任何顯示。運行結(jié)果沒有任何顯示。原因:原因:“基本組件基本組件”必須必須依托在依托在中間容器中,并讓中間容中間容器中,并讓中間容器器 依托在依托在頂層容器內(nèi)才能顯示出來。頂層容器內(nèi)才能顯示出來。15程序修改:程序修改:16運行結(jié)果:運行結(jié)果:說明:說明:上述上述“修改程序修改程

8、序”可將基本組件顯示出來,從而可將基本組件顯示出來,從而也也 證明了證明了基本組件是不能獨立顯示的組件基本組件是不能獨立顯示的組件。17FrameFramePanePaneButtonButton頂層容器頂層容器中間容器中間容器( (內(nèi)容面板內(nèi)容面板)基本組件疊放層次示意圖:基本組件疊放層次示意圖:183.2 Window3.2 Window類類上節(jié)介紹了頂層容器類的基本概念。上節(jié)介紹了頂層容器類的基本概念。本節(jié)將介紹有關(guān)更深入、實用的知識。本節(jié)將介紹有關(guān)更深入、實用的知識。如:如:怎樣使用頂層容器類;怎樣使用頂層容器類; 頂層容器類的種類;頂層容器類的種類; 頂層容器類所繼承下來的層次等。頂

9、層容器類所繼承下來的層次等。 193.2.1 3.2.1 頂層容器類和包含層次頂層容器類和包含層次問題:問題:使用使用JavaJava進行圖形編程時,組件被繪制在哪里?進行圖形編程時,組件被繪制在哪里?解決:解決:首先需要一個能提供圖形繪制的容器首先需要一個能提供圖形繪制的容器-“頂層容器頂層容器”。(Desktop)(Desktop) 頂層容器是進行頂層容器是進行“圖形編程圖形編程”的基礎(chǔ),的基礎(chǔ),“一切圖形化的東西一切圖形化的東西”都都必必須包含須包含在頂層容器中。在頂層容器中。(也可將其想象成一個窗口)(也可將其想象成一個窗口) Swing Swing中主要有中主要有三種三種可以使用的頂

10、層容器:可以使用的頂層容器: JFrameJFrame-用來設(shè)計類似于用來設(shè)計類似于WindowsWindows系統(tǒng)中窗口形式的應(yīng)用程序;系統(tǒng)中窗口形式的應(yīng)用程序; JDialogJDialog-和和JFrameJFrame類似,只是類似,只是JDialogJDialog常用來設(shè)計對話框;常用來設(shè)計對話框; JAppletJApplet-用來設(shè)計可以嵌入在網(wǎng)頁中的用來設(shè)計可以嵌入在網(wǎng)頁中的JavaJava小程序。小程序。20對頂層容器類的理解:對頂層容器類的理解: 三種頂層容器均可三種頂層容器均可獨立顯示獨立顯示 在實際開發(fā)中,通常作為一個圖形界面的在實際開發(fā)中,通常作為一個圖形界面的最頂層最

11、頂層窗口;窗口; SwingSwing圖形界面圖形界面至少需要至少需要有一個頂層容器有一個頂層容器 容器與其所包含的組件,形成了容器與其所包含的組件,形成了“樹狀包含層次結(jié)構(gòu)樹狀包含層次結(jié)構(gòu)”,頂層容器就,頂層容器就是這個層次結(jié)構(gòu)的是這個層次結(jié)構(gòu)的“根根”。 每個頂層容器都有一個每個頂層容器都有一個內(nèi)容面板內(nèi)容面板 即即中間容器類中間容器類組件,可包含組件,可包含( (承載承載) )界面中所需要的各種基本組件。界面中所需要的各種基本組件。 在頂層容器中可添加在頂層容器中可添加菜單組件菜單組件 菜單組件一般放在頂層容器中,和菜單組件一般放在頂層容器中,和內(nèi)容面板是并行的內(nèi)容面板是并行的。即頂層容

12、器可。即頂層容器可以以同時包含同時包含菜單組件和內(nèi)容面板。菜單組件和內(nèi)容面板。21實際開發(fā)中實際開發(fā)中- 大多數(shù)大多數(shù)JavaJava程序都使用程序都使用“JFrameJFrame”組件對象作為頂層容器組件對象作為頂層容器。當(dāng)然。當(dāng)然“JDialog”JDialog”和和“JApplet”JApplet”也可以作為頂層窗口,只不也可以作為頂層窗口,只不過過JDialogJDialog一般作為彈出窗口使用,而一般作為彈出窗口使用,而JAppletJApplet一般作為嵌在網(wǎng)一般作為嵌在網(wǎng)頁中的小程序的框架使用。頁中的小程序的框架使用。 大多數(shù)圖形界面的頂層容器仍使用大多數(shù)圖形界面的頂層容器仍使用

13、JFrameJFrame作為程序框架。作為程序框架。22JFrameJFrame作為頂層窗口示意圖作為頂層窗口示意圖 23首先首先-創(chuàng)建一個頂層容器創(chuàng)建一個頂層容器JFrameJFrame;其次其次-創(chuàng)建一個內(nèi)容面板或中間容器創(chuàng)建一個內(nèi)容面板或中間容器JPanelJPanel; (也可以創(chuàng)建一個菜單組件(也可以創(chuàng)建一個菜單組件JMenuJMenu)最后最后-將所需要的基本組件將所需要的基本組件JComponentJComponent,按照一定的布,按照一定的布 局方式,添加到內(nèi)容面板中,即可形成一個圖形局方式,添加到內(nèi)容面板中,即可形成一個圖形 界面。界面。設(shè)計一個圖形界面的步驟:設(shè)計一個圖形

14、界面的步驟:243.2.2 3.2.2 在頂層容器中添加組件在頂層容器中添加組件 與與AWTAWT組件不同,組件不同,SwingSwing基本組件基本組件不能直接添加不能直接添加到頂層容到頂層容器中,而必須添加到一個與器中,而必須添加到一個與SwingSwing頂層容器相關(guān)聯(lián)的頂層容器相關(guān)聯(lián)的“內(nèi)容面內(nèi)容面板板(ContentPane)”(ContentPane)”上。上。 內(nèi)容面板內(nèi)容面板實際上是一個實際上是一個中間組件中間組件( (容器容器) )。( (輕量組件輕量組件) )基本規(guī)則:基本規(guī)則: 須創(chuàng)建一個與須創(chuàng)建一個與頂層容器頂層容器相聯(lián)系相聯(lián)系的的內(nèi)容面板內(nèi)容面板; 避免使用非避免使用

15、非SwingSwing的重量級組件。的重量級組件。25在在JFrameJFrame頂層容器中添加中間組件的方法頂層容器中添加中間組件的方法方法一方法一:用:用getContentPane()getContentPane()方法,獲得方法,獲得JFrameJFrame的內(nèi)容面板的內(nèi)容面板, , 再在這個內(nèi)容面板中添加組件,方法為:再在這個內(nèi)容面板中添加組件,方法為: frame.getContentPane().add(childComponent)frame.getContentPane().add(childComponent)方法二方法二:首先建立一個:首先建立一個JpanelJpanel

16、或或JDesktopPaneJDesktopPane之類的之類的中間容中間容 器器,將組件添加到容器中,然后再用,將組件添加到容器中,然后再用setContentPane()setContentPane() 方法將方法將該中間容器該中間容器設(shè)置為設(shè)置為JFrameJFrame的內(nèi)容面板的內(nèi)容面板。 2627在頂層容器中添加內(nèi)容面板程序示例:在頂層容器中添加內(nèi)容面板程序示例: 28程序運行結(jié)果:程序運行結(jié)果: 圖圖3.5 3.5 添加內(nèi)容面板測試程序運行結(jié)果添加內(nèi)容面板測試程序運行結(jié)果29在內(nèi)容面板中添加普通組件示例程序:在內(nèi)容面板中添加普通組件示例程序: 30程序運行結(jié)果:程序運行結(jié)果: 圖圖

17、3.6 3.6 在內(nèi)容面板中添加普通組件在內(nèi)容面板中添加普通組件 313.2.3 3.2.3 在頂層容器中添加菜單欄在頂層容器中添加菜單欄 32程序運行結(jié)果:程序運行結(jié)果: 圖圖3.7 3.7 在頂層容器中添加菜單在頂層容器中添加菜單圖圖3.8 3.8 菜單項展開菜單項展開33在菜單中的空白處是否能添加基本組件呢?在菜單中的空白處是否能添加基本組件呢? 34程序運行結(jié)果:程序運行結(jié)果: 圖圖3.9 3.9 組件添加到菜單的頂層容器中組件添加到菜單的頂層容器中說明:主要是在頂層容器中,使用說明:主要是在頂層容器中,使用setJMenuBar()setJMenuBar()方法方法嵌入菜單條,嵌入菜

18、單條, 使用使用setContentPane()setContentPane()嵌入按鈕組件到中間容器。嵌入按鈕組件到中間容器。 按照此方式,即可形成一個完整的應(yīng)用程序界面。按照此方式,即可形成一個完整的應(yīng)用程序界面。353.3 JComponent3.3 JComponent類類36關(guān)于關(guān)于JComponentJComponent類的說明類的說明 JComponentJComponent類是所有類是所有“輕量組件輕量組件”的的父類父類。 上述所列,僅為上述所列,僅為JComponentJComponent類的一些類的一些常用子類常用子類。 所有繼承所有繼承JComponentJCompone

19、nt類的組件,都屬于類的組件,都屬于基本組件類基本組件類, 只能依賴只能依賴中間容器存在中間容器存在( (顯示顯示) )。37JComponentJComponent類的特性(類的特性(9 9大顯著特性)大顯著特性) 38功能功能1 1:Tool tipsTool tips-工具提示功能工具提示功能 通過在通過在“setToolTipTextsetToolTipText方法方法”中中指定字符串指定字符串,為一個組件提供幫助,為一個組件提供幫助。 即即,當(dāng)鼠標(biāo)停留在組件上時,指定的,當(dāng)鼠標(biāo)停留在組件上時,指定的“字符串字符串”將出現(xiàn)在該組件附近將出現(xiàn)在該組件附近。39程序運行結(jié)果:程序運行結(jié)果:

20、 圖圖3.11 3.11 工具提示程序運行工具提示程序運行40功能功能2 2:繪畫和邊框繪畫和邊框 使用使用“setBordersetBorder方法方法”或或“BorderFactoryBorderFactory類類”創(chuàng)建創(chuàng)建SwingSwing所提供的所提供的絕大多數(shù)邊框。絕大多數(shù)邊框。41程序運行結(jié)果:程序運行結(jié)果: 圖圖3.12 3.12 繪制按鈕邊框繪制按鈕邊框42說明:說明: 邊界由邊界由“BorderFactory.creatBorder()BorderFactory.creatBorder()”返回,其類型為返回,其類型為BorderBorder。常用邊界:常用邊界: 黑線:黑

21、線:BorderFactory.createLineBorder(Color.black)BorderFactory.createLineBorder(Color.black) 凸起邊界:凸起邊界:BorderFactory.createEtchedBorder(EtchedBorder.RAISED)BorderFactory.createEtchedBorder(EtchedBorder.RAISED) 凹下邊界:凹下邊界:BorderFactory.createEtchedBorder(EtchedBorder.LOWERED)BorderFactory.createEtchedBord

22、er(EtchedBorder.LOWERED) 凸起:凸起:Border raisedBevel=BorderFactory.createRaisedBevelBorder()Border raisedBevel=BorderFactory.createRaisedBevelBorder() 凹下:凹下:Border LoweredBevel=BorderFactory.createLoweredBevelBorder()Border LoweredBevel=BorderFactory.createLoweredBevelBorder() 加粗默認(rèn)線:加粗默認(rèn)線:BorderFactory.createCompoundBorder(raisedBevel,loweredBevel)BorderFactory.createCompoundBorder(raisedBevel,loweredBevel)43功能功能3 3:可插入的觀感器可插入的觀感器 可可“定制桌面、更新顏色方案,使系統(tǒng)適應(yīng)用戶的習(xí)慣和需要定制桌面、更新顏色方案,使系統(tǒng)適應(yīng)用戶的習(xí)慣和需要”; 使界面具有不同的風(fēng)格;使界面具有不同的風(fēng)格; SwingSwing提

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論