Java高級程序設(shè)計(第二版)課件第4章 GUI程序設(shè)計_第1頁
Java高級程序設(shè)計(第二版)課件第4章 GUI程序設(shè)計_第2頁
Java高級程序設(shè)計(第二版)課件第4章 GUI程序設(shè)計_第3頁
Java高級程序設(shè)計(第二版)課件第4章 GUI程序設(shè)計_第4頁
Java高級程序設(shè)計(第二版)課件第4章 GUI程序設(shè)計_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Java高級程序設(shè)計第4章GUI程序設(shè)計第4章GUI程序設(shè)計4.1 認(rèn)識GUI程序4.2 容器與布局4.3 GUI基本元素4.4 菜單與工具欄4.5 對話框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簡單記事本界面任務(wù)7確認(rèn)退出對話框任務(wù)8使用表格4.1 認(rèn)識GUI程序任務(wù)1登陸窗體編程實(shí)現(xiàn)一個登陸窗體,這在信息管理系統(tǒng)中是及其常見的。效果如圖所示。知識點(diǎn):Swing包、創(chuàng)建窗體一、Swing包

GUI,即圖形用戶界面(GraphicsUserInterface),它是用戶與應(yīng)用程序之間的一個交互接口。 Java中,為了方便GUI程序的開發(fā),設(shè)計了專門的類庫來生成各種標(biāo)準(zhǔn)圖形界面元素,Swing組件便是其中常用的一種,類庫是javax.swing包。Swing相關(guān)的包,見教材表4-1常用Swing組件類層次圖,見教材圖4-2二、創(chuàng)建窗體1、窗體JFrameJFrame類就是一個頂層容器類,允許用戶把其他組件添加到它里面,把它們組織起來,并把它們呈現(xiàn)給用戶。JFrame的常用方法,見教材表4-22、標(biāo)簽JLabelJLabel類是一個用來在界面上顯示文本或圖像的類,創(chuàng)建標(biāo)簽時即可指定要顯示的文本或圖像,但運(yùn)行時它們不能被用戶修改。標(biāo)簽不能響應(yīng)輸入事件,不能與用戶交互,即不能像按鈕那樣點(diǎn)擊后程序可以做出某種響應(yīng),標(biāo)簽主要用來顯示。3、按鈕JButton按鈕JButton類是圖形界面中使用最多的一個組件,使用按鈕可以與用戶交互,響應(yīng)鼠標(biāo)的點(diǎn)擊,可以完成用戶想要完成的一些功能。JButton是繼承自抽象類AbstractButton的,該抽象類中定義了許多組件的設(shè)置和處理的方法,AbstractButton類的常用方法見教材表4-34、文本框JTextField和密碼框JPasswordFieldSwing中與文字輸入有關(guān)的組件主要包括JTextField、JTextArea、JPasswordField和JTextPane,其中JTextField、JPasswordField是單行的文本輸入組件,JTextArea是多行的文本輸入組件,JTextPane可以設(shè)置其中文本的格式,它們都繼承自JTextComponent類JTextComponent類的常用方法,見教材表4-4任務(wù)2登陸驗(yàn)證功能

完善任務(wù)1,令登陸窗體可以響應(yīng)用戶的登陸請求,在用戶輸入賬號、密碼,并點(diǎn)擊“登陸”按鈕后進(jìn)行身份驗(yàn)證,并反饋登陸成功與否的信息。運(yùn)行效果如圖所示。知識點(diǎn):事件處理機(jī)制當(dāng)GUI上的組件與用戶發(fā)生交互,觸發(fā)一定的事件后執(zhí)行相應(yīng)的事件處理代碼,使得GUI能“動”起來的這種機(jī)制就叫做事件處理機(jī)制。Java采用叫做授權(quán)事件模型(DelegationEventMode)的事件處理機(jī)制,也稱為委托事件模型。采用授權(quán)事件模型進(jìn)行事件處理一般包含三步驟:

第一、確定事件源EventSource和事件Event。

第二、實(shí)現(xiàn)可以監(jiān)聽和處理事件的監(jiān)聽器EventListener,編寫事件的處理代碼。

第三、將監(jiān)聽器對象注冊給事件源,這樣關(guān)聯(lián)之后才能使得事件發(fā)生后能執(zhí)行相應(yīng)的處理代碼。Java圖形用戶界面事件處理的過程例程:典型的按鈕點(diǎn)擊事件

使用文本框收集用戶輸入的學(xué)生信息,點(diǎn)擊“確定”按鈕后將學(xué)生信息回顯到界面右側(cè)空白區(qū)域,點(diǎn)擊“重置”按鈕將同時清空文本框填入的信息和右側(cè)的回顯信息。運(yùn)行效果如圖所示。4.2 容器與布局任務(wù)3圖形用戶界面的四則運(yùn)算編程實(shí)現(xiàn)圖形用戶界面的四則運(yùn)算程序,加法、乘法運(yùn)算的運(yùn)行效果分別如圖所示。知識點(diǎn):JPanel、布局管理器一、JPanelJPanel,Swing中的中間層容器面板,繼承自javax.swing.JComponent,主要用于放置Swing輕量級組件,JPanel的對象也可以作為頂層容器的內(nèi)容面板來使用。將JPanel與布局策略結(jié)合使用可以更有效地進(jìn)行界面設(shè)計和管理。二、布局管理器1、FlowLayout FlowLayout是JPanel的缺省布局管理器,其布局策略是:組件按從上到下、從左到右的順序進(jìn)行放置,如果容器足夠?qū)挘谝粋€組件先添加到容器中第一行的最左邊,后續(xù)的組件依次添加到上一個組件的右邊,如果當(dāng)前行已放置不下該組件,則放置到下一行的最左邊,依此類推。2、BorderLayoutBorderLayout邊界布局是一種比較簡單的布局策略,它將容器分為NORTH、SOUTH、WEST、EAST、CENTER五個區(qū)域,每個區(qū)域容納一個組件,這五個區(qū)域被定義為BorderLayout類的5個靜態(tài)常量。3、GridLayoutGridLayout網(wǎng)格布局是像棋盤一樣將容器劃分成若干行×列的網(wǎng)格區(qū)域,每個網(wǎng)格放置一個組件。在容器上添加組件時,它們會按從左到右、從上到下的順序在網(wǎng)格中排列。4、BoxLayoutBoxLayout箱式布局是在Swing中新增加的一種布局管理器,它允許多個組件全部垂直擺放或全部水平擺放。BoxLayout布局管理器按照自上而下(y軸)或者從左到右(x軸)的順序布局依次加入組件。5、null布局若想精確地指定各個組件的位置和大小,我們可以使用容器的setLayout()方法,將參數(shù)設(shè)為null,表示取消容器的布局管理器設(shè)置,即null布局。若采用了null布局,就需要我們?yōu)楦鱾€組件設(shè)置位置和大小,應(yīng)配合組件的setBounds()方法,或setLocation()方法、setSize()方法使用。4.3 GUI基本元素任務(wù)4文本復(fù)制編程實(shí)現(xiàn)一個文本復(fù)制程序,用戶可以在左側(cè)文本區(qū)中鍵入內(nèi)容,選中文本后,點(diǎn)擊copy按鈕可將選中的文本復(fù)制到右邊的文本區(qū)中,運(yùn)行效果如圖所示。任務(wù)5字體選擇器編程實(shí)現(xiàn)一個字體選擇器,用戶可以選擇字體、字號、樣式和顏色,用戶鍵入文本內(nèi)容時,文本區(qū)回顯用戶鍵入的內(nèi)容,并采用用戶選擇的字體、字號、樣式和顏色。運(yùn)行效果如圖所示。知識點(diǎn):選擇型組件一、單選按鈕JRadioButtonJRadioButton單選按鈕必須配置成組才能實(shí)現(xiàn)多選一,否則仍然能夠多選。性別選擇就應(yīng)使用JRadioButton單選按鈕組實(shí)現(xiàn)。二、復(fù)選框JCheckBoxJCheckBox,復(fù)選框,實(shí)現(xiàn)一組選項中的多選功能例程:模擬考試系統(tǒng)的答題界面三、組合框JComboBoxSwing通過JComboBox類支持組合框(一個文本框和下拉列表的組合),組合框通常顯示一個可選條目,可允許用戶在一個下拉列表中選擇多個不同條目4.4 菜單與工具欄任務(wù)6簡單記事本界面編程模擬一個簡單記事本界面,包含文件的新建、打開操作命令和文本的剪切、復(fù)制、粘貼命令,以及退出程序的操作命令,并實(shí)現(xiàn)編輯功能(剪切、復(fù)制、粘貼)和退出功能。效果如圖所示。知識點(diǎn):菜單、工具欄一、菜單

菜單和工具欄幾乎是所有圖形用戶界面程序中必備的組件,Swing包中有一系列專門用來創(chuàng)建菜單組件的類,如圖所示。1、JMenuBar菜單欄JMenuBar是放置菜單的容器??梢酝ㄟ^JFrame類的setMenuBar()方法把JMenuBar對象加入一個框架中。2、JMenu菜單JMenu是菜單欄上放置的菜單。每一個菜單由一些菜單項組成??梢酝ㄟ^JMenuBar類的add()方法,把JMenu對象放置在JMenuBar對象上(即設(shè)置菜單欄上的主菜單)。3、JMenuItem菜單項菜單項代表具體的菜單操作命令,可以通過JMenu類的add()方法,把JMenuItem菜單項加到JMenu菜單中。JMenuItem與JButton及其相似,點(diǎn)擊JMenuItem同樣產(chǎn)生ActionEvent事件。4、JPopupMenu彈出菜單JPopupMenu可實(shí)現(xiàn)彈出菜單,彈出菜單是一個可彈出并顯示一系列選項的小窗口。JPopupMenu用于用戶在菜單欄上選擇項時顯示的菜單。它還用于當(dāng)用戶選擇菜單項并激活它時顯示的“右拉式(pull-right)”菜單。5、JSeparator分隔符JSeparator常用作菜單項之間的分隔符,以便將菜單項分成幾個邏輯組??梢允褂肑Menu或JPopupMenu的addSeparator()方法來創(chuàng)建和添加一個分隔符,而不是直接使用JSeparator。JSeparator還可能用于GUI中任何一個需要可視化分隔符的地方。

6、創(chuàng)建菜單系統(tǒng)案例例程:模擬一個學(xué)生管理系統(tǒng)的菜單系統(tǒng)二、工具欄Swing中JToolBar類提供了工具欄的屬性和方法,用來放置各種常用功能命令的按鈕。對于大多數(shù)的外觀,用戶可以將工具欄拖到單獨(dú)的窗口中(除非floatable屬性被設(shè)置為false)。4.5 對話框任務(wù)7確認(rèn)退出對話框在任務(wù)6的基礎(chǔ)上,創(chuàng)建確認(rèn)退出的對話框,當(dāng)用戶選擇退出菜單或點(diǎn)擊退出按鈕時,彈出該對話框請用戶確認(rèn)退出操作。運(yùn)行效果如圖所示。知識點(diǎn):JDialog、JOptionPane、JFileChooser一、JDialogJDialog,Swing中的對話框,依賴于上層組件(窗口或?qū)υ捒颍话闶且粋€臨時的窗口,主要用于顯示提示信息或接受用戶輸入。JDialog必須要依賴于某個窗口或組件,當(dāng)它所依賴的窗口或組件消失,對話框也將消失,當(dāng)它所依賴的窗口或組件可見時,對話框又會自動恢復(fù)。二、JOptionPaneJOptionPane類提供了一些靜態(tài)方法用于顯示各種對話框,這些對話框都是模式的,主要包含四種類型:消息對話框、輸入對話框、確認(rèn)對話框和選項對話框。JOptionPane類創(chuàng)建各種標(biāo)準(zhǔn)對話框的靜態(tài)方法,見教材表4-6三、JFileChooserJFileChooser,文件選擇器,用于顯示打開或保存文件的對話框。JFileChoose本身只是一個針對文件操作的對話框,并沒有文件讀取或文件存盤的功能,要實(shí)現(xiàn)這樣的功能,必須要結(jié)合輸入輸出流的使用。4.6 表格任務(wù)8使用表格編程實(shí)現(xiàn)一個簡單學(xué)生成績管理程序,可以錄入和顯示學(xué)生姓名、班級和成績信息。運(yùn)行效果如圖所示。知識點(diǎn):JTable表格是在設(shè)計圖形用戶界面時非常重要的一種組件,特別是當(dāng)我們需要將較多的統(tǒng)計數(shù)據(jù)非常清晰而有條理地呈現(xiàn)在用戶面前時,表格的運(yùn)用可以達(dá)到很好的效果Swing實(shí)現(xiàn)表格的組件是JTable實(shí)訓(xùn)任務(wù)[實(shí)訓(xùn)

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論