Java程序設(shè)計第八章_第1頁
Java程序設(shè)計第八章_第2頁
Java程序設(shè)計第八章_第3頁
Java程序設(shè)計第八章_第4頁
Java程序設(shè)計第八章_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

目錄第一章Java與程序邏輯第二章面向?qū)ο蟪绦蛟O(shè)計基礎(chǔ)第三章面向?qū)ο蠡咎匦缘谒恼鲁S脤ο笫褂玫谖逭庐惓L幚淼诹翴/O操作第七章多線程編程第八章Java的GUI可視界面編程第八章Java的GUI可視界面編程21任務(wù)8.1創(chuàng)建窗體任務(wù)8.2在窗體上布局控件任務(wù)8.3

給Swing組件添加事件3任務(wù)8.1創(chuàng)建窗體4情境描述123問題分析解決方案知識總結(jié)5應(yīng)用實(shí)踐8.1.1情境描述針對企業(yè)工資管理而言,圖形化、可視化的操作已是信息管理軟件開發(fā)主流。如何將現(xiàn)有的工資管理系統(tǒng)移植到窗體圖形界面中成為Tom需要考慮的首要問題,針對系統(tǒng)的主菜單程序進(jìn)行圖形化操作,他需要完成以下任務(wù):1)利用Java創(chuàng)建窗體對象2)在窗體上繪制組建3)在窗體上添加菜單8.1.2問題分析現(xiàn)有的工資管理系統(tǒng)主界面主要是采取字符行界面輸出而來,字符行界面的缺點(diǎn)在于人機(jī)交互能力不強(qiáng),所有的操作都必須通過鍵盤完成,用戶操作難度大。Java提供awt及swing組件,有效的解決了圖形化界面的設(shè)計問題,swing組件提供的JFrame,JMenu等組件,能夠有效地解決用戶所需。8.1.3解決方案

1、打開Eclipse開發(fā)環(huán)境。2、新建包c(diǎn)om.esms.view。3、新建環(huán)境參數(shù)控制類。4、從JFrame類派生新建創(chuàng)建對象FramMain.java。5、在窗體中添加成員。6、在窗體構(gòu)造函數(shù)中初始化組件并布局。7、創(chuàng)建主函數(shù)測試主窗體效果。8.1.4知識總結(jié)1.GUI界面介紹圖形用戶界面(GraphicalUserInterface,GUI)是借助菜單、按鈕等標(biāo)準(zhǔn)界面元素和鼠標(biāo)操作,幫助用戶方便向計算機(jī)系統(tǒng)發(fā)出指令,啟動操作,并將系統(tǒng)運(yùn)行的結(jié)果同樣以圖形方式顯示給用戶。Java提供的圖形用戶界面包有兩個,即java.awt包和javax.swing包。8.1.4知識總結(jié)2.Swing由于Swing不依賴于任何本地代碼,所以采用Swing編寫的程序具有100%的可移植性,不需要進(jìn)行代碼的任何改動即可運(yùn)行于所有的平臺。所有的Swing組件都包含在以javax開頭的Java擴(kuò)展包javax.swing包中。程序中用到了該包中的類,需要在源程序前面通過import語言引入對應(yīng)的類庫。8.1.4知識總結(jié)3.JFrame容器是一種能夠容納其他組件或容器的特殊組件。每個GUI應(yīng)用程序必須至少包含一個頂層容器組件。窗體JFrame繼承于AWT的Frame類,主要用于設(shè)計類似于Windows系統(tǒng)中的窗口形式的應(yīng)用程序。它可以擁有標(biāo)題、邊框、菜單,而且允許調(diào)整大小,其外觀依賴于所使用的操作系統(tǒng)。8.1.4知識總結(jié)4.Swing菜單菜單是GUI中非常重要的一部分。它顯示一個項目列表,指明用戶可以執(zhí)行的各項操作,當(dāng)用戶選擇或點(diǎn)擊它的某個選項時,會打開另外的一個列表或子菜單。每個菜單項都有一些關(guān)聯(lián)的操作。Swing菜單由菜單欄(JMenuBar)、菜單(JMenu)和菜單項(JMenuItem)構(gòu)成。JMenuBar是JMenu和JMenuItem的父類,可以將JMenu和JMenuItem對象添加到JMenuBar上。8.1.4知識總結(jié)4.Swing菜單創(chuàng)建菜單的基本步驟如下。(1)創(chuàng)建菜單條(JMenuBar)(2)創(chuàng)建菜單(JMenu),加入到相應(yīng)菜單條(3)創(chuàng)建菜單項(JMenuItem),加入到相應(yīng)菜單(4)使菜單條依附于擁有它的對象,即添加菜單條到頂層容器8.1.5應(yīng)用實(shí)踐配合Swing窗體JFrame和菜單對象,創(chuàng)建程序?qū)崿F(xiàn)用戶界面,如圖8-4所示效果。任務(wù)8.2在窗體上布局控件4情境描述123問題分析解決方案知識總結(jié)5應(yīng)用實(shí)踐8.2.1情境描述針對工資管理系統(tǒng)而言,Tom成功的實(shí)現(xiàn)了主菜單的可視化,緊接著他需要針對系統(tǒng)操作界面,例如員工的管理界面進(jìn)行圖形化,需要完成以下任務(wù):1)在窗體上添加Swing組件2)將Swing組件合理布局到窗體上8.2.2問題分析界面圖形化操作主要通過在窗體方式組件及組件的布局構(gòu)成,java語言通過在JFrame上放置JPanel,JTextField,JLabel等組件的形式實(shí)現(xiàn),同時通過適當(dāng)?shù)牟季址绞?,?shí)現(xiàn)界面的合理展現(xiàn)。8.2.3解決方案

1、打開Eclipse。2、在com.esms.view下創(chuàng)建添加A類員工的界面AddEmployeeA.Java。3、新建A類員工修改的窗體EditEmployeeA.java。4、編寫刪除A類員工的刪除窗體DeleteEmployeeA.java。5、測試三個操作界面。8.2.4知識總結(jié)1.Swing組件(1)JPanel面板JPanel是一種經(jīng)常使用的中間層容器。它沒有標(biāo)題和邊框,默認(rèn)屬性為透明,也沒有背景色彩,即是一種看不見的中間層容器。可以使用add方法在JPanel中放置按鈕、文本框等組件。使用時,需要將它添加到頂層容器或其他中間容器中。(2)JLabel標(biāo)簽是顯示文本和圖片的一個靜態(tài)區(qū)域,用于只能查看而不能修改其內(nèi)容,但通過代碼可以修改其內(nèi)容。8.2.4知識總結(jié)1.Swing組件(3)JButton按鈕類用來創(chuàng)建按鈕,在按鈕上可以設(shè)置圖標(biāo)。按鈕JButton被廣泛用于用戶輸入,當(dāng)用戶用鼠標(biāo)單擊按鈕時,系統(tǒng)會自動執(zhí)行與該按鈕相聯(lián)系的事件處理程序,從而完成預(yù)先指定的功能。(4)JTextFieldJava的文本框有單行文本框JTextField、密碼文本框JPasswordField、多行文本框JTextArea等多種。8.2.4知識總結(jié)1.Swing組件(5)JCheckBox用于復(fù)選框的實(shí)現(xiàn),復(fù)選框是一個可以被選定和取消選定的項,它將其狀態(tài)顯示給用戶。(6)JRadioButton組件實(shí)現(xiàn)一個單選按鈕,此按鈕項可被選擇或取消選擇,并可為用戶顯示其狀態(tài)。它與ButtonGroup對象配合使用可創(chuàng)建一組按鈕,一次只能選擇其中的一個按鈕。8.2.4知識總結(jié)2.布置管理布局管理器可以用來管理各種組件在容器中的放置狀態(tài),它會根據(jù)平臺來調(diào)整組件的大小,具有很好的平臺無關(guān)性。每個容器都有一類布局管理器,當(dāng)容器對某個組件進(jìn)行定位或判斷時,就會調(diào)用其對應(yīng)的布局管理器,而且可以通過setLayout()方法為容器設(shè)置新的布局。8.2.4知識總結(jié)2.布置管理(1)FlowLayout流布局管理器組件FlowLayout提供了一種非常簡單的布局,用來將一群組件安排在同一行,由左向右排列,并維持組件的大小,當(dāng)此行已經(jīng)排滿時,它會將剩余的組件自動排列到下一行,而各行的組件會向中間對齊。8.2.4知識總結(jié)2.布置管理(2)BorderLayout邊界式的布局,它把一個容器分為東、南、西、北、中五個部分,分別為BorderLayout.EAST、BorderLayout.SOUTH、BorderLayout.WEST、BorderLayout.NORTH、BorderLayout.CENTER,若沒有指明組件放置的位置,則表明默認(rèn)的“CENTER”。8.2.4知識總結(jié)2.布置管理(3)GridLayout網(wǎng)格布局GridLayout是將容器空間平均分割成若干行乘若干列的網(wǎng)格,每個格放一個組件。各組件按照從上到下,從左到右的順序排列。GridLayout布局中每個網(wǎng)格都是大小相同,并且強(qiáng)制組件與網(wǎng)格大小相同。8.2.5應(yīng)用實(shí)踐編寫一個名片管理程序,實(shí)現(xiàn)圖形界面如圖所示。其中可以使用布局管理器來布局,也可以通過添加不同的面板,實(shí)現(xiàn)布局。任務(wù)8.3給Swing組件添加事件4情境描述123問題分析解決方案知識總結(jié)5應(yīng)用實(shí)踐8.3.1情境描述Tom在完成了對工資管理系統(tǒng)的主窗體及新建窗體之后,但是,主界面的菜單沒有響應(yīng)事件,同時功能窗體也沒有響應(yīng)事件。為此他需要解決以下任務(wù):添加菜單的點(diǎn)擊事件添加按鈕的響應(yīng)事件8.3.2問題分析在window環(huán)境下,組件執(zhí)行的功能是通過事件來完成的,Java語言這對按鈕事件通過ActionEvent及ActionListener來解決,執(zhí)行的方法為ActionPerform。8.3.3解決方案1、打開Eclipse。2、修改FrameMaim.java,添加菜單的事件處理程序。3、添加菜單事件監(jiān)聽。4、運(yùn)行測試菜單點(diǎn)擊事件。5、為AddEmployeeA的添加按鈕綁定點(diǎn)擊事件。6、為EditEmployeeA的查詢按鈕添加事件。7、在DeleteEmployeeA.java類中添加刪除事件。8、運(yùn)行程序。8.3.3解決方案8.3.4知識總結(jié)1.事件處理機(jī)制如果希望能對各種事件做出反應(yīng),要編寫一個或多個事件處理方法,當(dāng)程序監(jiān)聽到事件發(fā)生后,就可以調(diào)用事件處理方法來處理了。(1)事件(Event):用戶對界面操作的描述,以類的形式出現(xiàn)。例如鼠標(biāo)操作對應(yīng)的事件MouseEvent。在Java的事件處理過程中,主要涉及3類對象。(2)事件源(EventSource):產(chǎn)生事件的組件,如按鈕Button。(3)事件監(jiān)聽者(EventListener):接收事件并對其進(jìn)行處理的對象。8.3.4知識總結(jié)2.事件類Java中的事件處理是面向?qū)ο蟮模惺录际菑膉ava.util包中的EventObject類擴(kuò)展而來的。EventObject有一個子類AWTEvent,它是所有AWT事件的父類EventObjectAWTEventActionEventAdjustmentEventComponentEventItemEventTextEventContainerEventFocusEventInputEventPaintEventWindowEventKeyEventMouseEvent8.3.4知識總結(jié)3.事件監(jiān)聽每種事件都有對應(yīng)的監(jiān)聽器,監(jiān)聽器是接口。監(jiān)聽器定義了與該事件動作有關(guān)的方法,這些方法都有一個參數(shù),接收事件源傳遞來的事件對象,這個事件對象包含了許多有用的信息,這是對象封裝的一個典型例子。創(chuàng)建好監(jiān)聽器后,還需要將監(jiān)聽器注冊到對應(yīng)的組件上才能實(shí)現(xiàn)組件上的事件監(jiān)聽。一般使用組件的addXXXListener方法。8.3.4知識總結(jié)4.事件適配器Java語言為一些Listener接口提供了適配器(Adapter)類。java.awt.event包中含有的事件適配器包括以下幾個:(1)ComponentAdapter組件適配器(2)ContainerAdapter容器適配器

溫馨提示

  • 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

提交評論