版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Java高級(jí)程序設(shè)計(jì)第4章GUI程序設(shè)計(jì)第4章GUI程序設(shè)計(jì)4.1 認(rèn)識(shí)GUI程序4.2 容器與布局4.3 GUI基本元素4.4 菜單與工具欄4.5 對(duì)話框4.6 表格本章目標(biāo)
創(chuàng)建圖形用戶界面實(shí)現(xiàn)界面與用戶的交互使用Swing常用組件本章任務(wù)任務(wù)1登陸窗體任務(wù)2登陸驗(yàn)證功能任務(wù)3圖形用戶界面的四則運(yùn)算任務(wù)4文本復(fù)制任務(wù)5字體選擇器任務(wù)6簡(jiǎn)單記事本界面任務(wù)7確認(rèn)退出對(duì)話框任務(wù)8使用表格4.1 認(rèn)識(shí)GUI程序任務(wù)1登陸窗體編程實(shí)現(xiàn)一個(gè)登陸窗體,這在信息管理系統(tǒng)中是及其常見(jiàn)的。效果如圖所示。知識(shí)點(diǎn):Swing包、創(chuàng)建窗體一、Swing包
GUI,即圖形用戶界面(GraphicsUserInterface),它是用戶與應(yīng)用程序之間的一個(gè)交互接口。 Java中,為了方便GUI程序的開發(fā),設(shè)計(jì)了專門的類庫(kù)來(lái)生成各種標(biāo)準(zhǔn)圖形界面元素,Swing組件便是其中常用的一種,類庫(kù)是javax.swing包。Swing相關(guān)的包,見(jiàn)教材表4-1常用Swing組件類層次圖,見(jiàn)教材圖4-2二、創(chuàng)建窗體1、窗體JFrameJFrame類就是一個(gè)頂層容器類,允許用戶把其他組件添加到它里面,把它們組織起來(lái),并把它們呈現(xiàn)給用戶。JFrame的常用方法,見(jiàn)教材表4-22、標(biāo)簽JLabelJLabel類是一個(gè)用來(lái)在界面上顯示文本或圖像的類,創(chuàng)建標(biāo)簽時(shí)即可指定要顯示的文本或圖像,但運(yùn)行時(shí)它們不能被用戶修改。標(biāo)簽不能響應(yīng)輸入事件,不能與用戶交互,即不能像按鈕那樣點(diǎn)擊后程序可以做出某種響應(yīng),標(biāo)簽主要用來(lái)顯示。3、按鈕JButton按鈕JButton類是圖形界面中使用最多的一個(gè)組件,使用按鈕可以與用戶交互,響應(yīng)鼠標(biāo)的點(diǎn)擊,可以完成用戶想要完成的一些功能。JButton是繼承自抽象類AbstractButton的,該抽象類中定義了許多組件的設(shè)置和處理的方法,AbstractButton類的常用方法見(jiàn)教材表4-34、文本框JTextField和密碼框JPasswordFieldSwing中與文字輸入有關(guān)的組件主要包括JTextField、JTextArea、JPasswordField和JTextPane,其中JTextField、JPasswordField是單行的文本輸入組件,JTextArea是多行的文本輸入組件,JTextPane可以設(shè)置其中文本的格式,它們都繼承自JTextComponent類JTextComponent類的常用方法,見(jiàn)教材表4-4任務(wù)2登陸驗(yàn)證功能
完善任務(wù)1,令登陸窗體可以響應(yīng)用戶的登陸請(qǐng)求,在用戶輸入賬號(hào)、密碼,并點(diǎn)擊“登陸”按鈕后進(jìn)行身份驗(yàn)證,并反饋登陸成功與否的信息。運(yùn)行效果如圖所示。知識(shí)點(diǎn):事件處理機(jī)制當(dāng)GUI上的組件與用戶發(fā)生交互,觸發(fā)一定的事件后執(zhí)行相應(yīng)的事件處理代碼,使得GUI能“動(dòng)”起來(lái)的這種機(jī)制就叫做事件處理機(jī)制。Java采用叫做授權(quán)事件模型(DelegationEventMode)的事件處理機(jī)制,也稱為委托事件模型。采用授權(quán)事件模型進(jìn)行事件處理一般包含三步驟:
第一、確定事件源EventSource和事件Event。
第二、實(shí)現(xiàn)可以監(jiān)聽(tīng)和處理事件的監(jiān)聽(tīng)器EventListener,編寫事件的處理代碼。
第三、將監(jiān)聽(tīng)器對(duì)象注冊(cè)給事件源,這樣關(guān)聯(lián)之后才能使得事件發(fā)生后能執(zhí)行相應(yīng)的處理代碼。Java圖形用戶界面事件處理的過(guò)程例程:典型的按鈕點(diǎn)擊事件
使用文本框收集用戶輸入的學(xué)生信息,點(diǎn)擊“確定”按鈕后將學(xué)生信息回顯到界面右側(cè)空白區(qū)域,點(diǎn)擊“重置”按鈕將同時(shí)清空文本框填入的信息和右側(cè)的回顯信息。運(yùn)行效果如圖所示。4.2 容器與布局任務(wù)3圖形用戶界面的四則運(yùn)算編程實(shí)現(xiàn)圖形用戶界面的四則運(yùn)算程序,加法、乘法運(yùn)算的運(yùn)行效果分別如圖所示。知識(shí)點(diǎn):JPanel、布局管理器一、JPanelJPanel,Swing中的中間層容器面板,繼承自javax.swing.JComponent,主要用于放置Swing輕量級(jí)組件,JPanel的對(duì)象也可以作為頂層容器的內(nèi)容面板來(lái)使用。將JPanel與布局策略結(jié)合使用可以更有效地進(jìn)行界面設(shè)計(jì)和管理。二、布局管理器1、FlowLayout FlowLayout是JPanel的缺省布局管理器,其布局策略是:組件按從上到下、從左到右的順序進(jìn)行放置,如果容器足夠?qū)?,第一個(gè)組件先添加到容器中第一行的最左邊,后續(xù)的組件依次添加到上一個(gè)組件的右邊,如果當(dāng)前行已放置不下該組件,則放置到下一行的最左邊,依此類推。2、BorderLayoutBorderLayout邊界布局是一種比較簡(jiǎn)單的布局策略,它將容器分為NORTH、SOUTH、WEST、EAST、CENTER五個(gè)區(qū)域,每個(gè)區(qū)域容納一個(gè)組件,這五個(gè)區(qū)域被定義為BorderLayout類的5個(gè)靜態(tài)常量。3、GridLayoutGridLayout網(wǎng)格布局是像棋盤一樣將容器劃分成若干行×列的網(wǎng)格區(qū)域,每個(gè)網(wǎng)格放置一個(gè)組件。在容器上添加組件時(shí),它們會(huì)按從左到右、從上到下的順序在網(wǎng)格中排列。4、BoxLayoutBoxLayout箱式布局是在Swing中新增加的一種布局管理器,它允許多個(gè)組件全部垂直擺放或全部水平擺放。BoxLayout布局管理器按照自上而下(y軸)或者從左到右(x軸)的順序布局依次加入組件。5、null布局若想精確地指定各個(gè)組件的位置和大小,我們可以使用容器的setLayout()方法,將參數(shù)設(shè)為null,表示取消容器的布局管理器設(shè)置,即null布局。若采用了null布局,就需要我們?yōu)楦鱾€(gè)組件設(shè)置位置和大小,應(yīng)配合組件的setBounds()方法,或setLocation()方法、setSize()方法使用。4.3 GUI基本元素任務(wù)4文本復(fù)制編程實(shí)現(xiàn)一個(gè)文本復(fù)制程序,用戶可以在左側(cè)文本區(qū)中鍵入內(nèi)容,選中文本后,點(diǎn)擊copy按鈕可將選中的文本復(fù)制到右邊的文本區(qū)中,運(yùn)行效果如圖所示。任務(wù)5字體選擇器編程實(shí)現(xiàn)一個(gè)字體選擇器,用戶可以選擇字體、字號(hào)、樣式和顏色,用戶鍵入文本內(nèi)容時(shí),文本區(qū)回顯用戶鍵入的內(nèi)容,并采用用戶選擇的字體、字號(hào)、樣式和顏色。運(yùn)行效果如圖所示。知識(shí)點(diǎn):選擇型組件一、單選按鈕JRadioButtonJRadioButton單選按鈕必須配置成組才能實(shí)現(xiàn)多選一,否則仍然能夠多選。性別選擇就應(yīng)使用JRadioButton單選按鈕組實(shí)現(xiàn)。二、復(fù)選框JCheckBoxJCheckBox,復(fù)選框,實(shí)現(xiàn)一組選項(xiàng)中的多選功能例程:模擬考試系統(tǒng)的答題界面三、組合框JComboBoxSwing通過(guò)JComboBox類支持組合框(一個(gè)文本框和下拉列表的組合),組合框通常顯示一個(gè)可選條目,可允許用戶在一個(gè)下拉列表中選擇多個(gè)不同條目4.4 菜單與工具欄任務(wù)6簡(jiǎn)單記事本界面編程模擬一個(gè)簡(jiǎn)單記事本界面,包含文件的新建、打開操作命令和文本的剪切、復(fù)制、粘貼命令,以及退出程序的操作命令,并實(shí)現(xiàn)編輯功能(剪切、復(fù)制、粘貼)和退出功能。效果如圖所示。知識(shí)點(diǎn):菜單、工具欄一、菜單
菜單和工具欄幾乎是所有圖形用戶界面程序中必備的組件,Swing包中有一系列專門用來(lái)創(chuàng)建菜單組件的類,如圖所示。1、JMenuBar菜單欄JMenuBar是放置菜單的容器??梢酝ㄟ^(guò)JFrame類的setMenuBar()方法把JMenuBar對(duì)象加入一個(gè)框架中。2、JMenu菜單JMenu是菜單欄上放置的菜單。每一個(gè)菜單由一些菜單項(xiàng)組成??梢酝ㄟ^(guò)JMenuBar類的add()方法,把JMenu對(duì)象放置在JMenuBar對(duì)象上(即設(shè)置菜單欄上的主菜單)。3、JMenuItem菜單項(xiàng)菜單項(xiàng)代表具體的菜單操作命令,可以通過(guò)JMenu類的add()方法,把JMenuItem菜單項(xiàng)加到JMenu菜單中。JMenuItem與JButton及其相似,點(diǎn)擊JMenuItem同樣產(chǎn)生ActionEvent事件。4、JPopupMenu彈出菜單JPopupMenu可實(shí)現(xiàn)彈出菜單,彈出菜單是一個(gè)可彈出并顯示一系列選項(xiàng)的小窗口。JPopupMenu用于用戶在菜單欄上選擇項(xiàng)時(shí)顯示的菜單。它還用于當(dāng)用戶選擇菜單項(xiàng)并激活它時(shí)顯示的“右拉式(pull-right)”菜單。5、JSeparator分隔符JSeparator常用作菜單項(xiàng)之間的分隔符,以便將菜單項(xiàng)分成幾個(gè)邏輯組。可以使用JMenu或JPopupMenu的addSeparator()方法來(lái)創(chuàng)建和添加一個(gè)分隔符,而不是直接使用JSeparator。JSeparator還可能用于GUI中任何一個(gè)需要可視化分隔符的地方。
6、創(chuàng)建菜單系統(tǒng)案例例程:模擬一個(gè)學(xué)生管理系統(tǒng)的菜單系統(tǒng)二、工具欄Swing中JToolBar類提供了工具欄的屬性和方法,用來(lái)放置各種常用功能命令的按鈕。對(duì)于大多數(shù)的外觀,用戶可以將工具欄拖到單獨(dú)的窗口中(除非floatable屬性被設(shè)置為false)。4.5 對(duì)話框任務(wù)7確認(rèn)退出對(duì)話框在任務(wù)6的基礎(chǔ)上,創(chuàng)建確認(rèn)退出的對(duì)話框,當(dāng)用戶選擇退出菜單或點(diǎn)擊退出按鈕時(shí),彈出該對(duì)話框請(qǐng)用戶確認(rèn)退出操作。運(yùn)行效果如圖所示。知識(shí)點(diǎn):JDialog、JOptionPane、JFileChooser一、JDialogJDialog,Swing中的對(duì)話框,依賴于上層組件(窗口或?qū)υ捒颍话闶且粋€(gè)臨時(shí)的窗口,主要用于顯示提示信息或接受用戶輸入。JDialog必須要依賴于某個(gè)窗口或組件,當(dāng)它所依賴的窗口或組件消失,對(duì)話框也將消失,當(dāng)它所依賴的窗口或組件可見(jiàn)時(shí),對(duì)話框又會(huì)自動(dòng)恢復(fù)。二、JOptionPaneJOptionPane類提供了一些靜態(tài)方法用于顯示各種對(duì)話框,這些對(duì)話框都是模式的,主要包含四種類型:消息對(duì)話框、輸入對(duì)話框、確認(rèn)對(duì)話框和選項(xiàng)對(duì)話框。JOptionPane類創(chuàng)建各種標(biāo)準(zhǔn)對(duì)話框的靜態(tài)方法,見(jiàn)教材表4-6三、JFileChooserJFileChooser,文件選擇器,用于顯示打開或保存文件的對(duì)話框。JFileChoose本身只是一個(gè)針對(duì)文件操作的對(duì)話框,并沒(méi)有文件讀取或文件存盤的功能,要實(shí)現(xiàn)這樣的功能,必須要結(jié)合輸入輸出流的使用。4.6 表格任務(wù)8使用表格編程實(shí)現(xiàn)一個(gè)簡(jiǎn)單學(xué)生成績(jī)管理程序,可以錄入和顯示學(xué)生姓名、班級(jí)和成績(jī)信息。運(yùn)行效果如圖所示。知識(shí)點(diǎn):JTable表格是在設(shè)計(jì)圖形用戶界面時(shí)非常重要的一種組件,特別是當(dāng)我們需要將較多的統(tǒng)計(jì)數(shù)據(jù)非常清晰而有條理地呈現(xiàn)在用戶面前時(shí),表格的運(yùn)用可以達(dá)到很好的效果Swing實(shí)現(xiàn)表格的組件是JTable實(shí)訓(xùn)任務(wù)[實(shí)訓(xùn)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025河北建筑安全員-A證考試題庫(kù)附答案
- DB32T-食品安全督導(dǎo)工作規(guī)范編制說(shuō)明
- 三個(gè)共點(diǎn)力的動(dòng)態(tài)平衡
- 單位人力資源管理制度精彩大合集十篇
- 公用事業(yè)行業(yè)十二月行業(yè)動(dòng)態(tài)報(bào)告:水電發(fā)電量降幅收窄風(fēng)光核裝機(jī)目標(biāo)明確
- 江蘇省連云港市海州區(qū)2024-2025學(xué)年八年級(jí)上學(xué)期期末考試生物學(xué)試卷(含答案)
- 單位管理制度展示合集【職員管理篇】十篇
- 年產(chǎn)5000臺(tái)液晶電視項(xiàng)目可行性研究報(bào)告建議書
- 單位管理制度展示選集人力資源管理篇
- 單位管理制度品讀選集人員管理篇十篇
- 機(jī)動(dòng)車維修竣工出廠合格證
- 陜西延長(zhǎng)石油精原煤化工有限公司 60 萬(wàn)噸 - 年蘭炭綜合利用項(xiàng)目 ( 一期 30 萬(wàn)噸 - 年蘭炭、1 萬(wàn)噸 - 年金屬鎂生產(chǎn)線)竣工環(huán)境保護(hù)驗(yàn)收調(diào)查報(bào)告
- 大病救助申請(qǐng)書
- 法學(xué)概論-課件
- 廈門物業(yè)管理若干規(guī)定
- 外科護(hù)理學(xué)試題+答案
- 齊魯醫(yī)學(xué)屈光和屈光不正匯編
- 貨架的技術(shù)說(shuō)明(一)
- 【高等數(shù)學(xué)練習(xí)題】皖西學(xué)院專升本自考真題匯總(附答案解析)
- 高處作業(yè)安全技術(shù)交底-
- 工抵房協(xié)議模板
評(píng)論
0/150
提交評(píng)論