




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1,圖形用戶界面設(shè)計,2,試卷題型及分值,一、單項選擇題(每題2分,共20分) 二、填空題(每空1分,共10分) 三、問答題(每題5分,共30分) 四、綜合題(每題20分,共40分),1.1.1 GUI概念,GUI是英文Graphical User Interface的簡寫,讀作“goo-ee”,中文譯作圖形用戶界面或圖形用戶接口,是指采用圖形方式顯示的計算機操作用戶界面,是屏幕產(chǎn)品的視覺體驗和人機互動操作接口。,3,1.4.1可視化程序設(shè)計的概念,可視化程序設(shè)計,也稱為可視化編程,是以“所見即所得”的編程思想為原則,通過直觀的操作方式進行界面的設(shè)計,并即時在設(shè)計環(huán)境看到其在運行環(huán)境的實際表現(xiàn)
2、結(jié)果,從而實現(xiàn)編程工作的可視化,及程序代碼的自動生成。 其實質(zhì)是設(shè)計過程可視化,設(shè)計結(jié)果即時呈現(xiàn)。通俗描述就是“看著畫”界面。,4,Java Swing GUI的實現(xiàn): 程序的GUI是以圖像的方式在計算機顯示屏上顯示的,顯示時需要確定圖像各像素的坐標(biāo)和顏色等信息。 一個Swing程序的GUI首先需要建立窗口,窗口中有一個內(nèi)容面板容納了其他的界面組件和其他的容器。 容器用于放置和管理組件。對窗口中各個組件需要管理其顯示位置和大小,即進行布局設(shè)計和管理,這個工作通常委托給布局管理器。 用戶在界面組件上的操作產(chǎn)生事件,程序通過事件循環(huán)在事件調(diào)度線程中對事件進行響應(yīng)。,5,2.1 創(chuàng)建Java GUI
3、項目,(1)選擇【文件】菜單的【新建項目】菜單項,或者單擊位于IDE主工具欄(在菜單欄之下)中的【新建項目】圖標(biāo) ,出現(xiàn)【新建項目】對話框。 (2)在【類別】窗格中選擇【Java】節(jié)點,在【項目】窗格中選擇【Java應(yīng)用程序】。單擊【下一步】按鈕。 (3)在【項目名稱】字段中輸入項目名稱,然后指定項目位置。 (4)將【使用專用文件夾存儲庫】復(fù)選框保留為取消選中狀態(tài)。 (5)單擊【創(chuàng)建主類】復(fù)選框,設(shè)置為取消選中狀態(tài)(未打鉤)。 (6)單擊【完成】按鈕。,6,“口令”字段JPasswordField的設(shè)計,“口令”字段有一個echoChar屬性設(shè)置輸入內(nèi)容的顯示字符,其它屬性與文本字段相同。,7
4、,事件處理的概念,事件:發(fā)送給GUI系統(tǒng)的消息,該消息通知GUI系統(tǒng)某種事情已經(jīng)發(fā)生,要求作出響應(yīng)。 事件源:引發(fā)產(chǎn)生事件的組件對象。 事件處理:Java GUI系統(tǒng)對用戶在組件上的某些操作(即發(fā)生的事件)執(zhí)行特定方法或運行特定程序,從而使用戶與Java GUI應(yīng)用程序進行數(shù)據(jù)交換,或?qū)Τ绦虻倪\行過程進行控制,8,Swing GUI事件處理步驟,(1)定義XxxEvent,描述GUI的Xxx事件。 (2)定義事件處理器接口XxxListener,聲明所有與該事件相關(guān)的處理方法。 (3)在觸發(fā)事件組件中定義處理Xxx事件的注冊方法addXxxListener和注銷方法removeXxxListe
5、ner。 (4)編寫實現(xiàn)事件監(jiān)聽器接口的類,實現(xiàn)具體事件處理方法。,9,事件監(jiān)聽器的兩種實現(xiàn)方式,2 從事件適配器派生 Swing(SWT)類庫對具有兩個或兩個以上方法的事件監(jiān)聽器接口都設(shè)計了一個對應(yīng)的事件適配器類,對各個方法做了空實現(xiàn)。 Swing(SWT)應(yīng)用程序的事件監(jiān)聽器就可以從相應(yīng)的事件適配器類派生,在事件監(jiān)聽器類中只實現(xiàn)需要的方法。,10,例3.2 在學(xué)生成績管理系統(tǒng)的用戶登錄界面中,規(guī)定用戶名必須是由字母和數(shù)字組成,否則為非法用戶名。給用戶名文本框jTextFieldUserName設(shè)計并注冊一個校驗器,防止輸入非法字符。 【分析】文本字段(JTextField)組件可以監(jiān)聽Ke
6、yEvent事件,在文本字段輸入時發(fā)生。通過KeyEvent對象的getKeyChar方法可以獲取用戶擊鍵所對應(yīng)的字符。因此,可以設(shè)計KeyEvent事件的監(jiān)聽器,在typedText方法中監(jiān)測用戶輸入內(nèi)容,防止輸入非法用戶名。,11,KeyListener就有鍵按下keyPressed、 鍵釋放keyReleased 擊鍵 keyTyped 三個方法 本例通過keyTyped方法監(jiān)測用戶輸入內(nèi)容,12,在initComponents()中自動生成代碼: jTextFieldUserName.addKeyListener(new java.awt.event.KeyAdapter() publ
7、ic void keyTyped(java.awt.event.KeyEvent evt) jTextFieldUserNameKeyTyped(evt); );,13,private void jTextFieldUserNameKeyTyped(java.awt.event.KeyEvent evt) char c = evt.getKeyChar() ; if(!(c=a ,14,絕對布局和空值布局,絕對布局AbsoluteLayout是NetBeans IDE提供的一種布局管理器。這種布局是直接把組件放置到窗體中的所需位置,直接在窗體中進行移動來調(diào)整位置,直接拖動邊框來改變組件大小。
8、空值布局Null Layout就是不使用布局管理器,在容器中對組件直接定位及設(shè)置大小。 絕對布局和空值布局源代碼不同。,15,4.2自由設(shè)計GroupLayout,自由設(shè)計是NetBeans IDE將布局管理器與布局工具結(jié)合起來的一種技術(shù),是GUI構(gòu)建器的默認布局。 自由設(shè)計采用GroupLayout布局管理器,同時提供的一個可視化設(shè)計工具。 Group Layout 分組布局,分組布局是 Swing 中最復(fù)雜的布局管理器之一,可以用來實現(xiàn)絕大多數(shù)組件排布的需求。,16,4.3網(wǎng)格式布局和網(wǎng)格包布局,網(wǎng)格式布局GridLayout是一種按行列排列的矩形方格,常用于整齊劃一的界面設(shè)計,使用較為簡
9、單。 網(wǎng)格包布局GridBagLayout也像網(wǎng)格式布局一樣將布局空間劃分成矩形網(wǎng)格,但做了重大改進和擴展,是Java 平臺提供的最靈活且最復(fù)雜的布局管理器之一。 1、GridBagLayout 管理的所有行和列都可以是大小不同的; 2 、 GridLayout 把每個組件限制到一個單元格,而 GridBagLayout 并不這樣:組件在容器中可以占據(jù)任意大小的矩形區(qū)域。,17,例4.3采用網(wǎng)格式布局設(shè)計一個簡單四則運算計算器。,18,等號運算,if (!.equals(str1) ,19,數(shù)字按鈕,private void numberIt(String s) if (sig = 0) st
10、r1 += s; jLabel1.setText(str1); jLabel2.setText(str2); jLabelMethod.setText(); else str2 += s; jLabel2.setText(str2); jTextFieldResult.setText(); private void jButtonNum1ActionPerformed(java.awt.event.ActionEvent evt) / TODO add your handling code here: numberIt(1); ,20,運算符按鈕,private void sigIt(char
11、 c) if (!.equals(str1) sig = c; jLabelMethod.setText( + c); jTextFieldResult.setText(); else jLabel1.setText(str1); jLabel2.setText(str2); jLabelMethod.setText(); jTextFieldResult.setText(); return; private void jButtonAddActionPerformed(java.awt.event.ActionEvent evt) / TODO add your handling code
12、here: sigIt(+); ,21,流式布局FlowLayout,這是最簡單的一種布局,也就是能力最弱的布局。按照組件加入的次序從左到右安排組件,當(dāng)空間不足時,就移到下一行。在改變?nèi)萜鞔笮r,其中的組件可能移到下一行或上一行顯示,但是組件次序不變。,22,邊框式布局BorderLayout,一個BorderLayout對象將界面分成五大區(qū)域,分別用BorderLayout類的靜態(tài)常量指定: -PAGE_START -PAGE_END -LINE_START -LINE_END -CENTER,23,卡片式布局、疊加布局,卡片式布局CardLayout設(shè)置容器內(nèi)所有組件的位置、大小相同,然后
13、層疊在一起,只有位于最上面的組件可見。 疊加布局OverlayLayout以重疊方式布局組件,并且以對齊點設(shè)置組件的對齊位置。,24,4.5 Box布局,Box布局在一個水平行或一個垂直列中布局組件。 BoxLayout會考慮到每一個組件的x與y對齊屬性及其最大尺寸。 布局組件過程中,經(jīng)常需要組件之間保持適當(dāng)?shù)木嚯x,【Swing Filler】可以作為組件之間的填充物使用。 填充器是無色透明的組件。,25,5.1面板容器,面板(JPanel)是一個輕量容器組件,也是最常用的中間容器,用于容納界面元素。 為面板設(shè)置適當(dāng)?shù)牟季止芾砥?,可以對組件進行不同的布局組合,可以通過容器的嵌套構(gòu)建復(fù)雜的界面。
14、 首先需要一個頂級容器,然后在該頂級容器中創(chuàng)建面板。,26,Swing采用自頂向下的方式構(gòu)建GUI,即先創(chuàng)建容器,再向容器中添加組件。 容器也是進行界面設(shè)計和布局的重要工具。 Swing提供了滾動窗格容器,通過滾動條移動觀察窗而顯示超出顯示面積的組件部分。 拆分窗格JSplitPane是一個中間容器組件,它把父容器的空間分隔成兩個部分,并提供一條分隔條。,27,一個標(biāo)簽化窗格是一個容器,其中包含了多個選項卡。選項卡上還有一個顯示標(biāo)識文字的標(biāo)簽(tab)。每張選項卡一般都放置一個中間型容器,在該容器中創(chuàng)建具體的功能組件。 分層窗格JLayeredPane是一種Swing容器,提供了管理其內(nèi)部的組
15、件的第三維:深度(也稱Z順序或?qū)樱?28,桌面窗格JDesktopPane是用于創(chuàng)建多文檔界面或虛擬桌面的容器。桌面窗格JDesktopPane是特殊的分層窗格JLayeredPane,管理可能的重疊內(nèi)部窗體。 桌面窗格是中間容器,使用時需要把它添加到頂級容器或頂級容器所包含的容器中。 內(nèi)部框架JInternalFrame是一個輕量級的高層窗口,且有一個根面板,許多方面都很像JFrame,但它并不是一個頂層窗口。 內(nèi)部框架一般放在桌面窗格中用以構(gòu)建多文檔界面。,29,6.1 對話框,對話框盡管是一個高層容器,一般都用于為應(yīng)用程序窗口提供與用戶交流信息的手段,且在需要時以彈出式窗口的方式顯示在
16、界面上。 創(chuàng)建對話框時可以為它設(shè)置一個父容器。這個父容器可以是一個JFrame窗體,也可以是另外一個對話框組件。,30,6.2選項窗格,選項窗格JOptionPane是可以彈出一個窗口,以便顯示一些信息,可能需要用戶選擇某個選項,或要求用戶輸入簡單信息的對話框。 對于大多數(shù)需要簡單使用對話框的程序,使用選項窗格更為簡單。,31,四種消息類型: (1)Message:一般消息對話框,無返回值 (2)Input:輸入對話框,返回用戶輸入內(nèi)容 (3)Confirm:確認對話框,返回值標(biāo)識了某單擊按鈕 (4)Option:選項對話框,32,7.1 菜單欄JMenuBar,菜單欄是程序窗體JFrame的
17、一個組成部分,位于層級面板的上部。 菜單JMenu是放置在菜單欄上的基本組件。 當(dāng)單擊一個菜單時,在一個彈出式菜單面板上顯示它所包含的子組件。 菜單項JMenuItem是依附于菜單、子菜單或彈出式菜單的可視組件。 分隔符JSeparator是一種特殊的組件,在界面上創(chuàng)建一條水平或垂直分隔線。,33,Swing庫所提供的每個組件都包含三方面: 內(nèi)容是組件的狀態(tài)和所展現(xiàn)的數(shù)據(jù),如文本區(qū)域的寬度、可否編輯等,其中輸入的文本等; 外觀即是組件的圖形化形態(tài),如大小、顏色、位置裝飾編輯等; 行為即是組件對事件的反應(yīng)。 Swing庫對組件的設(shè)計采用MVC設(shè)計模式。,34,第8章 Swing控件的使用,組合框
18、由一個提供選擇項的選項列表,一個向下拉開列表的下三角按鈕和一個幫助查找選擇項的文本框組合而成。 格式化字段JFormattedTextFiled使用關(guān)鍵在于通過formatterFactory屬性設(shè)置合適的輸入格式。 編輯器窗格是用來分析并顯示格式化文本的組件,并提供適當(dāng)?shù)木庉嫻δ堋?文本窗格JTextPane是為文字和版面處理設(shè)計的組件。當(dāng)需要對文字設(shè)置字體縮放、改變文字風(fēng)格、加入圖片等效果時,應(yīng)該使用文本窗格組件。,35,滑塊Jslider:一個讓用戶以圖形方式在有界區(qū)間內(nèi)通過移動滑塊來選擇值的組件。常見于播放器的音量控制、進度顯示和控制等程序界面中。 滾動條JScrollBar是用戶操縱視口的組件,同時也顯示視口的當(dāng)前位置。 進度條JProgressBar是為用戶反饋任務(wù)的運行進度的組件。 微調(diào)器JSpinner是一個左邊有輸入框,右邊有上下三角按鈕的組件,36,第9章 表格組件與數(shù)據(jù)庫的使用,多數(shù)情況下,輸入數(shù)據(jù)被保存在數(shù)據(jù)庫中,或者程序中使用的數(shù)據(jù)就是直接從數(shù)據(jù)庫中獲取。 大量結(jié)構(gòu)化數(shù)據(jù)一種主要輸出形式是表格。 大量Java GUI程序都依賴于數(shù)據(jù)庫。 Java語言提供了訪問數(shù)據(jù)庫的API
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 吊車勞務(wù)合同范例
- 雕塑制作雕塑設(shè)計合同范本
- 貸款服務(wù)費合同范本
- 廠區(qū)綠化垃圾清運合同范本
- 燈光設(shè)備短期租賃合同
- 十廉租房合同范本
- 公寓軟裝租房合同范本
- 廠房收購定金合同范本
- 單位與保安合同范例
- 醫(yī)療耗材服務(wù)合同范本
- 《團隊的凝聚力》課件
- 膝關(guān)節(jié)僵硬個案護理
- 《民間皮影》課程標(biāo)準(zhǔn)
- 新教科版六下科學(xué)1.4《設(shè)計塔臺模型》教學(xué)設(shè)計(新課標(biāo))
- 電氣設(shè)備維修
- 森林專業(yè)撲火隊培訓(xùn)課件
- 學(xué)校體育學(xué)第八章課余體育鍛煉課件
- “一帶一路”視域下印度尼西亞中資企業(yè)所得稅返還案例解析
- 職業(yè)健康監(jiān)護評價報告編制指南
- 管理ABC-干嘉偉(美團網(wǎng)COO)
- 社會工作綜合能力初級講義課件
評論
0/150
提交評論