版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第13章圖形界面編程本章之前的所有應用程序都是命令行界面,沒有特定的用戶輸入界面。從本章開始,將要學習圖形界面編程。對于一個軟件來說,不止要有比較強大完善的功能,而且還要有一個簡潔美觀的界面。本章就主要學習如何進行圖形界面編程。其中包括有AWT和Swing兩部分內(nèi)容。Swing基礎(chǔ)事件Swing組件布局管理器13.1AWT簡介AWT的全稱是抽象窗口工具集(AbstractWindowToolkit),它是一個特殊的組件,其中包含有其他的組件,并且它的庫類也非常豐富。包括了創(chuàng)建Java圖形界面程序的所有工具??梢岳肁WT在容器中創(chuàng)建標簽、按鈕、復選框、文本框等用戶界面元素。AWT中包括了圖形界面編程的基本類庫。是Java語言GUI程序設(shè)計的核心,它的作用是為用戶提供基本的界面構(gòu)件。這些構(gòu)件是為了使用戶和機器之間能夠更好的進行交互,而用來建立圖形用戶界面的獨立平臺。其中主要由以下幾部分,主要包括:組件類(Component)、容器類(Container)、圖形類(Graphics)和布局管理器(LayoutManager)。13.2Swing基礎(chǔ)Swing元素的屏幕顯示性能要比AWT要好,而且Swing是使用純Java來實現(xiàn)的。所以Swing也理所當然的具有Java的跨平臺性。但Swing并不是真正使用原生平臺提供設(shè)備,而是僅僅在模仿,因此可以在任何平臺上來使用Swing圖形用戶界面組件。它不必在它們自己本地窗口中繪制組件,而是在它們所在的重量級窗口中繪制,因為Swing絕大部分是輕量級的組件。13.2.1Swing的類層次結(jié)構(gòu)Javax.swing包中有頂層容器和輕量級兩種類型的組件,Swing輕量級的組件都是由AWT的Container類來直接或者是間接派生而來的。Swing包是JFC(JavaFoundationClasses)的一部分,它由許多包組成,如表13.2所示。在以上包中,javax.swing是Swing所提供最大的包,其中包含有100個類和25個接口,并且絕大部分的組件都包含在Swing包中。javax.swing.event包中定義了事件和事件處理類,這與java.awt.event包類似,主要包括事件類和監(jiān)聽器接口、事件適配器。13.2.2Swing特點組件的多樣化:雖然AWT是Swing的基礎(chǔ),但是Swing中卻提供了比AWT更多的圖形界面組件。而且Swing中組件的類名都是由字母“J”開頭,還增加了一些比較復雜的高級組件如JTable、JTree13.2.3Swing程序結(jié)構(gòu)簡介使用Swing進行程序設(shè)計,首先要引入Swing的包,創(chuàng)建頂層的容器,在容器中創(chuàng)建按鈕和標簽等一系列的組件并將組件添加到頂層容器中,然后在組建的周圍添加邊界,最后對組件的事件進行處理。13.3Swing組件Swing的組件與AWT組件相似,但又為每一個組件增添了新的方法,并提供了更多的高級組件。所以本節(jié)Swing的基本組件選取幾個比較典型的組件進行詳細講解,本節(jié)沒有討論到的組件,讀者在使用中遇到的困難可參閱API文檔。13.3.1按鈕(Jbutton)Swing中的按鈕時Jbutton,它是javax.swing.AbstracButton類的子類,Swing中的按鈕可以顯示圖像,并且可以將按鈕設(shè)置為窗口的默認圖標,而且還可以將多個圖像指定給一個按鈕。在前面的HelloWorld例子中就是用到了一個按鈕。在Jbutton中有如下幾個比較常用的構(gòu)造方。JButton(Iconicon):按鈕上顯示圖標。JButton(Stringtext):按鈕上顯示字符。JButton(Stringtext,Iconicon):按鈕上既顯示圖標又顯示字符。13.3.2復選框(JCheckBox)是用復選框可以完成多項選擇,Swing中的復選框和AWT中復選框相比,優(yōu)點就是Swing復選框中可以添加圖片。該類是javax.swing.JToggleButton的子類復選框可以為每一次的單擊操作添加一個事件,復選框的構(gòu)造方法如下。JCheckBox():創(chuàng)建一個無文本、無圖標、未被選定的復選框。13.3.3單選框(JRadioButton)單選框(JRadioButton)與AWT中的復選框組功能類似,通常JRadoButton和ButtonGroup來配合一起是用,作用就是一次創(chuàng)建一組按鈕,并且在這一組按鈕中,每一次只能夠選中一個按鈕。需要使用到add()方法將JRadioButton添加到ButtonGrouo中。13.3.4組合框(JcomboBox)組合框,顧名思義,就是將一些組件例如按鈕及下拉菜單組合的組件。用戶可以使用下拉菜單中選擇不同的選項,如果此時的組合框處于編輯狀態(tài),還可以在組合框中鍵入值。13.3.5進程條(JprogressBar)進度條就是用圖形的方式來模擬描述任務(wù)進度的組件。任務(wù)的過程中,進度條會以百分比的形式來顯示。在程序結(jié)束后,進度條顯示百分之百13.3.6表格(JTable)表格(JTable)是Swing新增加的組件,主要是為了將數(shù)據(jù)以表格的形式顯示。通常用數(shù)據(jù)模型類的對象來保存數(shù)據(jù),數(shù)據(jù)模型類派生于AbstractTableModel類,并且必須重寫抽象模型類的幾個方法,例如getColumnCount,getRowCount,getColumnName,getValueAt。因為表格會從這個數(shù)據(jù)模型的對象中自動獲取數(shù)據(jù),數(shù)據(jù)模型類的對象負責表格大小(行/列)、數(shù)據(jù)填寫、表格單元更新等與表格有關(guān)的屬性和操作。13.3.7樹(JTree)樹(JTree)中特定的節(jié)點可以由TreePath標識或由其顯示行標識。當展開某一個節(jié)點的所有祖先時,將顯示該節(jié)點,折疊節(jié)點是隱藏位于折疊祖先下面的節(jié)點。可查看節(jié)點的父類節(jié)點都是可以展開的,但是它們可以顯示也可以不顯示。顯示節(jié)點必須是可查看的并且位于顯示區(qū)域。13.3.8文本框(JTextField)文本框具有文本輸入和編輯的功能,文本框組件用于獲取到用戶所輸入的文本。除此之外還有文本區(qū),文本區(qū)和文本框的區(qū)別是,前者可以輸入多行文本,而文本框只接受單行文本的輸入。實現(xiàn)文本框功能的類是JTextField,其中提供了多個方法,可以設(shè)置輸入的文本字符長度限制。密碼框和文本框的外觀一樣,并且也繼承自JTextField類,密碼框只提供專門的密碼輸入,輸入內(nèi)容不能直接顯示,在密碼框中以星號或其他形式的符號顯示在上面。下面的示例是一個登陸框,其中包括用戶名和密碼,13.4布局管理器布局管理器可以對窗口中的組件做有效的布局。Java中的布局管理師容器和布局管理器相分離,也就是容器只是把組件放置進來。至于如何放置就要使用到布局管理器了。布局管理器主要包括有BroderLayout、FlowLayout、GridLayout等。本節(jié)就主要介紹一下常用的布局管理器。13.4.1FlowLayout布局管理器FlowLayout布局管理器也叫做流式布局管理器,使用它可以將組件從左到右、從上到下進行排放。并且在默認的情況下盡可能的選用居中放置。榮會根據(jù)自身的大小來進行自動排列,而不需要用戶進行任何明確的操作。流式布局管理器的特點是在一行上水平的進行排列,直到該行沒有空間為止,然后就會重新?lián)Q行進行排列。當用戶縮小容器時,如果長度小于當前擺放的組件長度,則將多余的組件切換到下一行中進行排列。如果此時將容器放大,則會將第二排的組件重新放置到第一排中多出的空間中。13.4.2BorderLayout布局管理器BorderLayout布局管理器又叫邊界布局管理器,在Java中是最基礎(chǔ)的布局管理器之一,而且也是比較常用的管理器,也是面板默認的布局管理器。邊界布局管理器的特點就是將整個面板分為五個部分,分別對應東、西、南、北、中。如果一個面板被設(shè)置成邊界布局后,所有填入某一區(qū)域的組件都會按照該區(qū)域的空間進行調(diào)整,直到完全充滿該區(qū)域。如果此時將面板的大小進行調(diào)整,則四周區(qū)域的大小不會發(fā)生改變,只有中間區(qū)域被放大或縮小。13.4.3BoxLayout布局管理器BoxLayout布局管理器又叫做箱式布局管理器,顧名思義,就相當于將一組組件放置到一個箱子中然后將箱子排成一列。用戶還可以通過傳入構(gòu)造方法的參數(shù)來決定如何排列,分為橫向和縱向兩種。創(chuàng)建箱式布局管理器時需要設(shè)置參數(shù),用于選擇橫向布局或是縱向布局,選擇橫向布局時,組件的排列順序是從左到右。選擇縱向布局時,組件的排列順序是從上到下。關(guān)于組件的大小設(shè)置,主要有以下三個方法。setPreperredSize(Dimensiondim):該方法用于設(shè)置首選大小。setMaximumSize(Dimensiondim):該方法用于設(shè)置最大值。setMinimumSize(Dimensiondim):該方法用于設(shè)置最小值。13.4.4GridLayout布局管理器GridLayout是網(wǎng)格布局管理器,該管理器負責將一個容器按照規(guī)則的形狀分割成多個區(qū)域。對GridLayout的設(shè)置,可以根據(jù)橫向或者是縱向的放法,兩者指定的方法分別是setHgap和setVgap。而且可以直接在構(gòu)造方法中指定,橫向組件間隔寬度和縱向組件間隔寬度對應屬性是hgap和vgap。13.5事件處理事件處理是圖形界面和用戶進行交互的重要組成部分,Java中的事件處理機制主要包括有事件源、事件和事件處理器三個部分。首先要做的是為事件注冊相對應的事件處理器,并制定事件,然后由事件處理器獲取后進行相應的事件處理。13.5.1事件監(jiān)聽器事件監(jiān)聽器是監(jiān)聽所觸發(fā)事件的對象,其中包含有對事件發(fā)生后的事件處理操作。對于不同的事件,Java中也定義了所相應的事件監(jiān)聽器接口。如下是幾個比較常用的事件監(jiān)聽器接口。13.5.2事件適配器前面介紹了事件監(jiān)聽器,都是以實現(xiàn)事件監(jiān)聽器的接口方式進行定義的。而且前面幾章中也介紹過,實現(xiàn)接口,就要實現(xiàn)接口中的所有方法。Java中針對每個事件接聽器接口,系統(tǒng)定義了相應的實現(xiàn)類。并稱為事件適配器,只需要繼承事件適配器并覆蓋幾個必要的方法就可以了。這樣一來也使得代碼變的更加簡潔。13.5.3事件事件就是觸發(fā)一個組件所產(chǎn)生的動作,在Swing中,有很多的事件,例如鼠標事件、焦點事件等,每一個事件類都會與一個事件類接口相對應,并且由事件所引起的動作都會存放在接口需要實現(xiàn)的方法中。1.鼠標事件鼠標事件是由MouseEvent負責,而鼠標監(jiān)聽器則有兩種,分別是MouseListener和MouseMotionListener。其中MouseListener負責鼠標的按下、抬起、進入某以區(qū)域。當組件注冊了鼠標監(jiān)聽器后,如果組件發(fā)生以上的動作事件后,就會激活相應的事件處理方法。2.鍵盤事件鍵盤事件是用于處理在鍵盤上所輸入的信息,表示鍵盤事件的類是KeyEvent,該類可以獲取到產(chǎn)生鍵盤事件的事件源,而且還可以獲取到鍵盤輸入按鍵的信息。3.焦點事件鼠標單擊到某一個按鈕上的圖片時,這個按鈕就獲得了焦點。例如,鼠標單擊窗口
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 項目談判課程設(shè)計
- 煤礦帶區(qū)課程設(shè)計
- 鐘表轉(zhuǎn)動課程設(shè)計圖
- 網(wǎng)絡(luò)組建與維護課程設(shè)計
- 紫杉醇課程設(shè)計
- 電拖課程設(shè)計實驗目的
- 圖書管理系統(tǒng)orical課程設(shè)計
- 銷售人員課程設(shè)計
- 運籌學運輸問題課程設(shè)計
- 漢服網(wǎng)站課程設(shè)計
- 財務(wù)機器人技術(shù)在會計工作中的應用
- 《保單檢視專題》課件
- 建筑保溫隔熱構(gòu)造
- 智慧財務(wù)綜合實訓
- 安徽省合肥市2021-2022學年七年級上學期期末數(shù)學試題(含答案)3
- 教育專家報告合集:年度得到:沈祖蕓全球教育報告(2023-2024)
- 肝臟腫瘤護理查房
- 護士工作壓力管理護理工作中的壓力應對策略
- 2023年日語考試:大學日語六級真題模擬匯編(共479題)
- 皮帶拆除安全技術(shù)措施
- ISO9001(2015版)質(zhì)量體系標準講解
評論
0/150
提交評論