java圖形用戶界面設(shè)計.ppt.ppt_第1頁
java圖形用戶界面設(shè)計.ppt.ppt_第2頁
java圖形用戶界面設(shè)計.ppt.ppt_第3頁
java圖形用戶界面設(shè)計.ppt.ppt_第4頁
java圖形用戶界面設(shè)計.ppt.ppt_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

圖形用戶界面設(shè)計 第11章 2 目標(biāo) GUI相關(guān)概念布局管理器事件處理常用Swing組件 3 11 1 1GUI包和簡單GUI程序2 1 1 java awt包稱為抽象窗口工具集AWT AbstractWindowToolkit 是使用Java進行GUI設(shè)計的基礎(chǔ) 2 javax swing包Swing組件存放在javax swing包中 幾乎所有AWT組件對應(yīng)有新功能更強的Swing組件 另外還加入了一些全新的組件 Swing組件在名稱上前面多了一個字母 J 4 11 1 1GUI包和簡單GUI程序2 2 3 設(shè)置GUI應(yīng)用程序的流程 1 引用需要的包和類 2 設(shè)置一個頂層的容器 3 根據(jù)需要為容器設(shè)置布局管理器或使用默認布局管理器 4 將組件添加到容器內(nèi) 位置自行設(shè)計 5 為響應(yīng)事件的組件編寫事件處理代碼 5 11 1 2容器 組件 布局和觀感 1 容器和組件組件是可以用圖形化的方式顯示在屏幕上并能夠與用戶進行交互的對象 容器是一種特殊的組件 一種能夠容納其他組件或容器的組件 2 布局管理器為了使圖形用戶界面具有良好的平臺無關(guān)性 提供了專門用來管理組件在容器中的布局的工具 3 觀感決定swing應(yīng)用程序的外觀 6 11 2布局管理器 Java中的布局類型包括以下幾種 FlowLayout 流式布局 BorderLayout 邊界布局 GridLayout 網(wǎng)格布局 CardLayout 卡片布局 GridBagLayout 網(wǎng)格包布局 7 11 2 1FlowLayout布局管理器 FlowLayout的構(gòu)造函數(shù)有 FlowLayout 生成一個默認的流式布局FlowLayout intalignment 可以設(shè)定每一行組件的對齊方式FlowLayout intalignment inthorz intvert 可以設(shè)定組件間的水平和垂直距離Applet和面板的缺省布局組件從左上角開始按從左到右 從上到下的方式排列 FlowLayoutmylayout newFlowLayout FlowLayoutexLayout newFlowLayout FlowLayout RIGHT setLayout exlayout 為容器設(shè)置新布局 8 11 2 2BorderLayout布局管理器 下面是BorderLayout所定義的構(gòu)造函數(shù) BorderLayout 生成默認的邊界布局 BorderLayout inthorz intvert 可以設(shè)定組件間的水平和垂直距離窗口 框架和對話框等的缺省布局組件被置于容器的北 南 東 西或中間位置 setLayout newBorderLayout ButtonbtnEast newButton 東 ButtonbtnWest newButton 西 ButtonbtnNorth newButton 北 ButtonbtnSouth newButton 南 ButtonbtnCenter newButton 中 add btnEast BorderLayout EAST add btnWest BorderLayout WEST add btnNorth BorderLayout NORTH add btnSouth BorderLayout SOUTH add btnCenter BorderLayout CENTER 9 11 2 3GridLayout布局管理器 GridLayout的構(gòu)造函數(shù)如下所示 GridLayout 生成一個單列的網(wǎng)格布局 GridLayout introw intcol 生成一個設(shè)定行數(shù)和列數(shù)的網(wǎng)格布局 GridLayout introw intcol inthorz intvert 可以設(shè)置組件之間的水平和垂直間隔用于將容器區(qū)域劃分為一個矩形網(wǎng)格組件按行和列排列 Buttonbtn 聲明按鈕數(shù)組Stringstr 1 2 3 4 5 6 7 8 9 setLayout newGridLayout 3 3 btn newButton str length 創(chuàng)建按鈕數(shù)組for inti 0 i str length i btn i newButton str i add btn i 10 11 2 4CardLayout布局管理器 可存儲幾個不同的布局 每個布局就像是一個卡片組中的一張卡片 在一個給定的時間總會有一張卡片在頂層 卡片通常為一個Panel對象 每當(dāng)需要許多面板切換 而每個面板需要顯示為不同布局時 可以使用卡片布局 11 11 2 5GridBagLayout布局管理器 通過使用以下語法容器可獲得GridBagLayout GridBagLayoutgb newGridBagLayout ContainerName setLayout gb 要使用此布局 必須提供各組件的大小和布局等信息 GridBagConstraints類中包含GridBagLayout類用來定位及調(diào)整組件大小所需的全部信息 組件大小不必相同組件按行和列排列放置順序不一定為從左至右和由上至下 12 GridBagConstraints類2 1 成員變量列表 gridx gridy 指定組件放置于哪個單元中g(shù)ridwidth gridheight 指定組件將占用多少行和多少列weightx weighty 指定在一個GridBagLayout中應(yīng)如何分配空間 這些變量的缺省值為0ipadx ipady 指定組件的最小高度和寬度 13 成員變量列表 fill 指定在單元大于組件的情況下 組件如何填充此單元 共有4可選值 缺省值為 GridBagConstraints NONEanchor 指定將組件放置在單元中的位置 共有9個可選值 缺省值為 GridBagConstraints CENTER GridBagConstraints類2 2 14 11 2 6swing布局管理器 1 BoxLayout布局管理器按照從上到下 即Y軸 或者從左到右 即X軸 的順序來依次排列組件 2 ScrollPaneLayout布局管理器是JScrollPane中的內(nèi)置布局管理器 所以不需要單獨創(chuàng)建 會自動設(shè)置 15 11 2 7Null布局管理器 在某些情況下 用戶不想使用布局管理器 需要自己設(shè)置組件的位置和大小 這時應(yīng)取消容器的布局管理器 然后再進行設(shè)置 否則用戶自定義設(shè)置將會被布局管理器覆蓋 取消布局管理器的方法是 setLayout null 用戶使用setLocation setSize setBounds 等方法為組件設(shè)置位置和大小 需要注意的是 這種方法會導(dǎo)致程序與系統(tǒng)相關(guān) 如不同的分辨率會產(chǎn)生不同的效果 16 11 3 1事件處理模型 Java最新的事件處理方法是基于授權(quán)事件模型當(dāng)事件來源對象因用戶的操作 鼠標(biāo)或鍵盤 系統(tǒng)會自動觸發(fā)此事件類對象E 并通知所授權(quán)的事件監(jiān)聽者A 若來源對象已向A注冊 事件監(jiān)聽者A中有處理各種事件的方法 事件處理者1 n 便會處理此事件E的各種狀況 17 11 3 2事件層次結(jié)構(gòu)2 1 18 11 3 2事件層次結(jié)構(gòu)2 2 19 11 3 3事件處理方法 實現(xiàn)事件監(jiān)聽器接口法 首先給組件注冊監(jiān)聽器 使用下列方法 addxxxListener 事件監(jiān)聽器對象 確定了事件監(jiān)聽器的類型后 必須在程序中定義類來實現(xiàn)這些接口 重寫接口中的所有方法 addKeyListener newCharType publicclassCharTypeimplementsKeyListener publicvoidkeyPressed KeyEvente 大括號中為處理事件的代碼publicvoidkeyReleased KeyEvente 未用到此方法 所以方法體為空publicvoidkeyTyped KeyEvente 20 11 3 4事件適配器 使用實現(xiàn)事件監(jiān)聽器接口的方法處理事件時 必須重寫監(jiān)聽器接口中的所有方法 盡管有些方法不會用到 繼承事件適配器類 只需要重寫所需要的方法即可 addKeyListener newCharType 為事件源注冊事件監(jiān)聽器的方法同上 publicclassCharTypeextendsKeyAdapter publicvoidkeyPressed KeyEvente 大括號中為處理事件的代碼 21 11 4 1常用容器組件3 1 是放置其他Swing組件的頂級容器JFrame組件用于在Swing程序中創(chuàng)建窗體它的構(gòu)造函數(shù) JFrame JFrame StringTitle 組件必須添加至內(nèi)容窗格 而不是直接添加至JFrame對象 示例 frame getContentPane add b 22 11 4 1常用容器組件3 2 JPanel組件是一個中間容器用于將小型的輕量級組件組合在一起JPanel的缺省布局為FlowLayoutJPanel具有下列構(gòu)造函數(shù) JPanel JPanel LayoutManagerlm 23 11 4 1常用容器組件3 3 JApplet也是一種窗口容器 繼承自Applet類 Applet小程序是另一種Java程序 與Applet不同的是 它默認的布局管理器是JAppletBorderLayout 而Applet默認的布局管理器是FlowLayout 可直接向Applet窗口中添加組件 但JApplet不行 添加組件時必須添加到其內(nèi)容窗格中 得到內(nèi)容窗格使用方法 getContentPane 24 11 4 2標(biāo)簽 JLabel 它既可以顯示文本也可以顯示圖像構(gòu)造函數(shù)如下 JLabel Iconicon icon表示使用的圖標(biāo)JLabel Stringtext Iconicon intalign text表示使用的字符串 icon表示使用的圖標(biāo) align表示水平對齊方式 其值可以為 LEFT RIGHT CENTER 其它常用方法getText setText Stringtext 25 11 4 3按鈕 JButton 可以使用以下任一構(gòu)造函數(shù)來創(chuàng)建按鈕 JButton 新建一個空的按鈕JButton Iconicon JButton Stringtext JButton Stringtext Iconicon JButtonbtnOk newJButton 確定 JButtonbtnCancel newJButton 取消 getContentPane add btnOk getContentPane add btnCancel 26 11 4 4文本框 JTextField JTextField組件允許輸入或編輯單行文本此類的構(gòu)造函數(shù)包括 JTextField JTextField Documentdoc Stringtext intcolumns JTextField intcolumns JTextField Stringtext JTextField Stringtext intcolumns Containercon getContentPane con setLayout newFlowLayout JLabeljl newJLabel 文本域 con add jl JTextFieldtf newJTextField 20 con add tf 27 11 4 4文本框 JPasswordField JPasswordField組件允許輸入或編輯單行文本 并且文本被其他字符代替 此類的構(gòu)造函數(shù)與單行文本框類似 其它方法 char getPassword chargetEchoChar voidsetEchoChar charc 28 11 4 4文本框 JTextArea JTextArea組件用于接受來自用戶的多行文本它可實現(xiàn)可滾動界面JTextArea組件可使用下列構(gòu)造函數(shù)創(chuàng)建 JTextArea JTextArea introws intcols JTextArea Stringtext JTextArea Stringtext introws intcols JTextArea Documentdoc JTextArea Documentdoc Stringtext introws intcols JLabeljl newJLabel 文本區(qū) con add jl JTextAreata newJTextArea 5 10 con add ta 29 11 4 5復(fù)選框 JCheckBox 復(fù)選框用于為用戶提供一組選項JCheckBox類具有下列構(gòu)造函數(shù) JCheckBox JCheckBox Iconicon JCheckBox Iconicon booleanselected JCheckBox Stringtext JCheckBox Stringtext booleanselected JCheckBox Stringtext Iconicon JCheckBox Stringtext Iconicon booleanselected 30 11 4 6單選按鈕 JRadioButton 單選按鈕允許用戶從多個選項中選擇其中一個ButtonGroup用于在Swing中創(chuàng)建組JRadioButton對象可使用下列構(gòu)造函數(shù)創(chuàng)建 JRadioButton JRadioButton Iconicon JRadioButton Icon booleanselected JRadioButton Stringtext JRadioButton Stringtext booleanselected JRadioButton Stringtext Iconicon JRadioButton Stringtext Iconicon booleanselected 31 11 4 7列表框 JList publicJList 使用空模型構(gòu)造JListpublicJList ListModeldataModel 構(gòu)造一個列表 用它顯示指定模型中的元素 publicJList Object listData 構(gòu)造一個列表以顯示指定數(shù)組listData的元素 JList不支持滾動 要啟用滾動 可使用下列代碼 JScrollPanemyScrollPane newJScrollPane myScrollPane getViewport setView dataList Stringstars 安東尼奧 班德拉斯 來昂納多 迪卡普尼奧 桑德拉 布洛克 休 格蘭特 朱莉亞 羅伯茨 JListmoviestars newJList stars 32 11 4 8組合框 JComboBox 文本域和下拉列表的組合在Swing中 組合框由JComboBox表示構(gòu)造函數(shù)如下 publicJComboBox 此構(gòu)造函數(shù)使用缺省數(shù)據(jù)模型創(chuàng)建JComboBoxpublicJComboBox ComboBoxModelasModel 使用現(xiàn)有ComboBoxModel中的項目的組合框publicJComboBox Object items 包含指定數(shù)組元素的組合框 Stringnames 弗雷德里克 福西斯 約翰 克里沙姆 瑪麗 希金斯 克拉克 帕特麗夏 康威爾 JComboBoxauthors newJComboBox names 33 11 4 9滑塊 JSlider JSlider 創(chuàng)建滑塊默認范圍為0至100水平方向JSlider intorientation 創(chuàng)建范圍為0至100 初值為50 水平或垂直滑塊 方向取值為JSl

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論