版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
項(xiàng)目7仿windows計(jì)算器界面2了解Swing組件掌握使用常用窗體:JFrame掌握使用常用面板:JPanel掌握常用組件的創(chuàng)建和添加文本組件按鈕組件列表組件掌握應(yīng)用程序中的布局管理器本章目標(biāo)本章任務(wù)3制作如下所示的計(jì)算器界面1.Swing概述(1)AWT和Swing
Java的抽象窗口工具包(AbstractWindowToolkit,AWT)提供了支持GUI設(shè)計(jì)的類和接口,AWT由java.awt包提供。
AWT中的圖形函數(shù)與操作系統(tǒng)所提供的圖形函數(shù)之間有著一一對應(yīng)的關(guān)系。也就是說,當(dāng)我們利用AWT來構(gòu)建圖形用戶界面的時候,實(shí)際上是在利用操作系統(tǒng)所提供的圖形庫。AWT缺點(diǎn):觀感效果依賴于目標(biāo)平臺41.Swing概述(2)AWT和Swing
Swing是在AWT的基礎(chǔ)上構(gòu)建的一套新的圖形界面系統(tǒng)。它提供了比AWT更強(qiáng)大和更靈活的組件,并且所有組件都完全用Java書寫,因此具有良好的跨平臺性。5Swing組件存放在javax.swing包中。幾乎所有AWT組件對應(yīng)有新功能更強(qiáng)的Swing組件。另外還加入了一些全新的組件Swing組件在名稱上前面多了一個字母“J”:JButton、JLabel、JMenu、JFrameSwing給予不同平臺的用戶一致的感觀效果1.Swing概述(3)組件:以圖形化的方式顯示在屏幕上并能與用戶進(jìn)行交互的GUI元素。例如按鈕、文本框等。一般的組件是不能獨(dú)立地顯示出來的,必須依賴于容器才能顯示。容器:容器是一種比較特殊的組件,它可以包含其他的組件,也可以包含容器。例如JFrame、JApplet、JWindow等。Swing中的容器包括頂層容器和中間容器。每一個Java的GUI程序都必須至少包含一個頂層容器標(biāo)簽按鈕1.Swing概述(4)7●頂層容器是可以獨(dú)立存在的容器,可以把它看成一個窗口。在Swing中,頂層容器有三種,分別是JFrame(框架窗口)、JDialog(對話框)和JApplet(用于設(shè)計(jì)嵌入在網(wǎng)頁中的Java小程序)。
●中間容器不能獨(dú)立存在,與頂層容器結(jié)合使用可以構(gòu)建較復(fù)雜的界面布局。這些中間容器主要包括:
■?JPanel:最靈活、最常用的中間容器。
■?JScrollPane:與JPanel類似,但還可在大的組件或可擴(kuò)展組件周圍提供滾動條。
■JTabbedPane:包含多個組件,但一次只顯示一個組件,用戶可以在組件之間方便地切換。
■?JToolBar:按行或列排列一組組件(通常是按鈕)。頂層容器按鈕文本框標(biāo)簽中間容器1按鈕文本框中間容器2按鈕文本框2.JFrame框架窗口(1)8在開發(fā)應(yīng)用程序時可以通過繼承javax.swing.JFrame類創(chuàng)建一個窗口,在這個窗口中添加組件,同時為組件設(shè)置事件。由于該窗口繼承了JFrame類,所以它擁有一些最大化、最小化、關(guān)閉的按鈕繼承自JFrame類的窗口默認(rèn)大小是0,并且不可見,我們可以通過繼承父類提供的一些常用的方法來控制和修飾窗口。2.JFrame框架窗口(2)每個頂層容器都有一個內(nèi)容窗格(contentpane),一般情況下,這個內(nèi)容窗格會包含(直接或間接地)所有頂層容器GUI的可視組件。下圖展示了JFrame窗口的層次結(jié)構(gòu),包括綠色的菜單(空菜單)位置,還有一個巨大的黃色區(qū)域即是內(nèi)容窗格。我們可以在內(nèi)容窗格上添加各種組件,如標(biāo)簽JLabel、按鈕JButton、文本框JTextField等。93.JLabel標(biāo)簽組件(1)標(biāo)簽由JLabel類定義,它的父類為JComponent類。標(biāo)簽可以顯示一行只讀文本、一個圖像或帶圖像的文本,它并不能產(chǎn)生任何類型的事件,只是簡單地顯示文本和圖片,但是可以使用標(biāo)簽的特性指定標(biāo)簽上文本的對齊方式JLabel類提供了多種構(gòu)造方法,這樣可以創(chuàng)建多種標(biāo)簽,如顯示只有文本的標(biāo)簽、只有圖標(biāo)的標(biāo)簽或是包含文本與圖標(biāo)的標(biāo)簽103.JLabel標(biāo)簽組件(2)示例:創(chuàng)建兩個文本標(biāo)簽,效果如圖所示113.JLabel標(biāo)簽組件(3)示例3:使用圖片的標(biāo)簽在窗口中添加一張圖片,再使用文字標(biāo)簽為圖片添加說明(Swing利用javax.swing.ImageIcon類根據(jù)現(xiàn)有圖片創(chuàng)建圖標(biāo)。)124.常用布局管理器在Swing中,每個組件在容器中都有一個具體的位置和大小,在容器中擺放各種組件時很難判斷其具體位置和大小。布局管理器提供Swing組件安排展示在容器中的方法,它提供了基本的布局功能。每個容器都有一個布局管理器,容器中組件的大小和定位都由其決定。當(dāng)容器需要對某個組件進(jìn)行定位時,就會調(diào)用其對應(yīng)的布局管理器。常用的布局管理有java.awt包中定義的FlowLayout(流式布局)、BorderLayout(邊界布局)和GridLayout(網(wǎng)格布局)。當(dāng)一個容器被創(chuàng)建后,它們有默認(rèn)布局管理器。其中,JFrame和JDialog的默認(rèn)布局管理器是BorderLayout;JPanel和JApplet的默認(rèn)布局管理器是FlowLayout134.常用布局管理器(1)-流布局管理器FLowLayoutFlowLayout類布局方式是將組件從容器的左上角開始,依次從左到右、從上到下放置。當(dāng)容器被重新設(shè)置大小后,則布局也會隨之發(fā)生改變:各組件的大小不變,但相對位置會發(fā)生變化常用構(gòu)造方法align參數(shù)表示使用流布局管理器后組件在每一行的具體擺放位置,其值可以是FlowLayout.LEFT(左對齊)、FlowLayout.RIGHT(右對齊)、FlowLayout.CENTER(居中對齊)、FlowLayout.LEADING或FlowLayout.TRAILING。144.常用布局管理器(1)-流布局管理器FLowLayout示例4:使用流布局管理器,并在窗口上添加10個按鈕15
4.常用布局管理器(2)-邊界布局BorderLayout創(chuàng)建JFrame窗口后,默認(rèn)的布局模式是邊界布局管理器例如在示例2,示例3中,我們在容器中添加標(biāo)簽組件時,設(shè)定了組件的位置(c.add(BorderLayout.NORTH,bq1))BorderLayout包括五個區(qū)域:北North、南South、東East、西West和中Center,其方位依據(jù)上北下南左西右東而定。添加組件時,若沒有指明放置位置,則表明為默認(rèn)的“Center”方位。當(dāng)容器的尺寸發(fā)生變化時,各組件的相對位置不變,但中間部分組件的尺寸會發(fā)生變化,南北組件的高度不變,東西組件的寬度不變。164.常用布局管理器(2)-邊界布局BorderLayout示例5:創(chuàng)建一個JFrame,在容器的東南西北中區(qū)域添加5個按鈕。運(yùn)行效果如圖所示17
4.常用布局管理器(3)-網(wǎng)格布局GridLayoutGridLayout將容器劃分為網(wǎng)格,所以組件可以按行和列進(jìn)行排列。在網(wǎng)格布局管理器中,每一個組件的大小都相同,并且網(wǎng)格中的空格的個數(shù)由網(wǎng)格的行數(shù)和列數(shù)決定,例如一個兩行兩列的網(wǎng)格能產(chǎn)生4個大小相等的網(wǎng)格。組件從網(wǎng)格的左上角開始,按照從左到右、從上到下的順序加入到網(wǎng)格中,而且每一個組件都會填滿整個網(wǎng)格,改變窗體的大小,組件也會隨之改變大小。184.常用布局管理器(3)-網(wǎng)格布局GridLayout示例6:創(chuàng)建一個JFrame窗口,設(shè)置該窗口使用GridLayout布局管理器,并添加多個按鈕。運(yùn)行效果如圖所示。
19
5.常用中間容器(1)使用中間容器結(jié)合布局管理器,通過容器的嵌套使用,可以實(shí)現(xiàn)對窗口的復(fù)雜布局。Swing中常用的中間容器包括JPanel面板和JScrollPane面板。1.JPanel面板JPanel類在Java屬于中間容器,本身也屬于一個輕量級容器組件。由于JPanel類透明且沒有邊框,因此不能作為頂層容器,不能獨(dú)立顯示。它的作用就在于放置Swing輕量級組件,然后作為整體安置在頂層容器中。JPanel的默認(rèn)布局是流布局管理器。205.常用中間容器(2)示例7:創(chuàng)建一個JFrame窗口,在該窗口中添加4個JPanel面板,分別在這4個面板中添加多個按鈕,效果如圖所示。21
5.常用中間容器(3)在設(shè)置界面時,可能會遇到一個較小的容器窗體中顯示一個較大部分內(nèi)容的情況,這時可以使用JScrollPane面板。JScrollPane面板是帶滾動條的面板,它也是一種容器,但是JScrollPane只能放置一個組件,并且不可以使用布局管理器。如果需要在JScrollPane面板中放置多個組件,需要將多個組件放置在JPanel面板上,然后將JPanel面板作為一個整體組件添加在JScrollPane面板上。225.常用中間容器(4)示例8:修改示例3,將圖片標(biāo)簽放在JScrollPane面板上,效果如圖所示236.按鈕組件(1)按鈕在Swing中是較為常見的組件,它用于觸發(fā)特定動作。Swing中提供了很多按鈕,包括提交按鈕、復(fù)選框、單選按鈕等,這些按鈕都是從AbstractButton類中繼承而來的。1.提交按鈕組件JButton246.按鈕組件(2)示例9:創(chuàng)建一個帶文本和圖標(biāo)的按鈕,運(yùn)行效果如圖所示256.按鈕組件(3)2.單選按鈕組件JRadioButton默認(rèn)情況下,單選按鈕(JRadioButton)顯示一個圓形圖標(biāo),并且通常在該圖標(biāo)旁放置一些說明性文字,而在應(yīng)用程序中,一般將多個單選按鈕放置在按鈕組中,使這些單選按鈕實(shí)現(xiàn)唯一被選性,即當(dāng)用戶選中某個單選按鈕后,按鈕組中其他按鈕將被自動取消。266.按鈕組件(4)示例10:創(chuàng)建一組單選按鈕,用以選擇性別。運(yùn)行結(jié)果如圖所示。276.按鈕組件(5)3.復(fù)選框組件JCheckBox復(fù)選框(JCheckBox)在Swing組件中使用也非常廣發(fā),它具有一個方塊圖標(biāo),外加一段描述性文字。與單選按鈕唯一不同的是復(fù)選框可以進(jìn)行多選設(shè)置,每一個復(fù)選框都提供“選中”與“不選中”兩種狀態(tài)。286.按鈕組件(6)示例11:創(chuàng)建多個復(fù)選框,進(jìn)行興趣愛好選擇,運(yùn)行效果如圖所示。297.文本組件(1)1.文本框組件JTextField文本框(JTextField)用來顯示或編輯一個單行文本,其構(gòu)造方法如圖所示。從中可以看出,定義JTextField組件很簡單,可以在初始化文本框時設(shè)置文本框的默認(rèn)文字、文本框的長度等。307.文本組件(2)示例12:創(chuàng)建一個用戶名文本框317.文本組件(3)2.密碼框組件JPasswordField密碼框(JPasswordField)與文本框的定義與用法類似,唯一不同的是密碼使用戶輸入的字符串以某種方式進(jìn)行加密。327.文本組件(4)示例13:在示例12代碼上加一個密碼框,運(yùn)行如圖所示。在JPasswordField類中提供了一個setEchoChar()方法,可以改變密碼框的回顯字符。337.文本組件(5)3.文本區(qū)JTextArea文本區(qū)JTextArea類提供可以編輯或顯示多行文本的區(qū)域,默認(rèn)情況下,文本區(qū)是可編輯的。JTextArea的構(gòu)造方法如圖所示。347.文本組件(6)示例14:創(chuàng)建一個文本區(qū),用來顯示考場規(guī)則,效果如圖所示。358.列表組件(1)Swing中提供了下拉列表框與列表框兩種列表組件。下拉列表框與列表框都是帶有一系列項(xiàng)目的組件,用戶可以從中選擇需要的項(xiàng)目。列表框較下拉列表框更直觀一些,它將所有的項(xiàng)目羅列在列表框中;但下拉列表框較列表框更為便捷和美觀,它將所有的項(xiàng)目隱藏起來,當(dāng)用戶選用其中的項(xiàng)目時才會顯現(xiàn)出來。368.列表組件(2)1.下拉列表框組件JComboBox下拉列表框JComboBox是一個帶條狀的顯示區(qū),它具有下拉功能,在下拉列表框的右方存在一個倒三角形的按鈕,當(dāng)用戶單擊該按鈕時,下拉列表框中的項(xiàng)目將以列表形式顯示出來。JComboBox構(gòu)造方法如圖所示。8.列表組件(3)示例15:創(chuàng)建一個下拉列表框,用以選擇學(xué)歷。效果如圖所示388.列表組件(4)2.列表框組件JList列表框JList與下拉列表框的區(qū)別不僅表現(xiàn)在外觀上,當(dāng)激活下拉列表框時,會出現(xiàn)下拉列表框中的內(nèi)容,但列表框只是在窗體上占據(jù)固定的大小,如果要使列表框具有滾動效果,可以將列表框放入滾動面板中。用戶在選擇列表框中的某一項(xiàng)時,按住Shift鍵并選擇列表框中的其他項(xiàng)目,其他項(xiàng)目也將被選中;也可以按住Ctrl鍵并單擊列表框中的項(xiàng)目,這樣列表框中的項(xiàng)目處于非選擇狀態(tài)。398.列表組件(5)示例16:創(chuàng)建一個列表框,進(jìn)行喜歡的汽車品牌選擇409.選項(xiàng)對話框(1)與最流行的窗口系統(tǒng)一樣,AWT也區(qū)分模式對話框和無模式對話框。一個模式對話框在用戶結(jié)束對它的操作之前,不允許用戶與應(yīng)用程序其余的窗口進(jìn)行交互。模式對話框用于在程序繼續(xù)運(yùn)行之前獲得用戶提供的信息。例如,當(dāng)用戶希望讀取一個文件時,一個模式文件對話框就會彈出。用戶必須制定一個文件名,然后程序才能夠開始讀操作。只有當(dāng)用戶關(guān)閉(模式)對話框之后,應(yīng)用程序才能繼續(xù)執(zhí)行。無模式對話框允許用戶在對話框和應(yīng)用程序其余的窗口中輸入信息。一個最好的使用無模式對話框的例子就是工具欄。419.選項(xiàng)對話框(2)429.選項(xiàng)對話框(3)parentComponent父組件(可以為null)message顯示在對話框中的消息(可以使字符串、圖標(biāo)、組件等)title對話框標(biāo)題欄中的字符串messageType取值為ERROR_MESSAGE、INFORMATION_MESSAGE、WARNING_MESSAGE、QUESTION_MESSAGE、PLAIN_MESSAGEicon用于代替標(biāo)準(zhǔn)圖標(biāo)的圖標(biāo)optionType:
決定在對話框的底部所要顯示的按鈕選項(xiàng)。一般可以為DEFAULT_OPTION(默認(rèn))、YES_NO_OPTION(Yes和No按鈕)、YES_NO_CANCEL_OPTION(Yes、No和Cancel按鈕)、OK_CANCEL_OPTION(Ok和Cancel按鈕)等439.選項(xiàng)對話框(4)■顯示消息對話框
JOptionPane.showMessageDialog(this,"這是消息對話框!","消息對話框示例",JOptionPane.WARNING
_MESSAGE);
449.選項(xiàng)對話框(5)45■顯示確認(rèn)對話框
JOptionPane.showConfirmDialog(this,"這是確認(rèn)對話框!
","確認(rèn)對話框示例",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.INFORMATION_MESSAGE);
9.選項(xiàng)對話框(6)■顯示選項(xiàng)對話框
String[]options={"鋼琴","小提琴","古箏"};
intre
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑監(jiān)理基礎(chǔ)施工協(xié)議
- 農(nóng)業(yè)創(chuàng)新園區(qū)停車場改造合同
- 鉆孔工程安全生產(chǎn)考核合同
- 環(huán)保工程木地板工程合同
- 醫(yī)院管理團(tuán)隊(duì)聘用合同
- 租用合同樣本:消防設(shè)備
- 護(hù)理科研項(xiàng)目管理與實(shí)施
- 藥品采購績效評估體系
- 電子產(chǎn)品招投標(biāo)市場現(xiàn)狀分析
- 陶瓷制品廠建設(shè)鋼結(jié)構(gòu)施工合同
- 鍋爐控制器modbus協(xié)議支持說明
- 粉末涂料有限公司危廢庫安全風(fēng)險(xiǎn)分級管控清單
- 安全生產(chǎn)信息管理制度全
- 住宅物業(yè)危險(xiǎn)源辨識評價(jià)表
- 世界主要國家洲別、名稱、首都、代碼、區(qū)號、時差匯總表
- 2023學(xué)年廣東省廣州市越秀區(qū)鐵一中學(xué)九年級(上)物理期末試題及答案解析
- 《報(bào)告文學(xué)研究》(07562)自考考試復(fù)習(xí)題庫(含答案)
- 安全操作規(guī)程
- 電源日常點(diǎn)檢記錄表
- 人教版小學(xué)三年級語文上冊期末測試卷.及答題卡2
- 鋼軌接頭位置及接頭聯(lián)結(jié)形式
評論
0/150
提交評論