零點(diǎn)起飛學(xué)Java之圖形用戶界面.pptx
《零點(diǎn)起飛學(xué)Java之圖形用戶界面.pptx》由會(huì)員分享,可在線閱讀,更多相關(guān)《零點(diǎn)起飛學(xué)Java之圖形用戶界面.pptx(43頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
第10章圖形用戶界面 圖形用戶界面 GraphicalUserInterface 簡(jiǎn)稱GUI 提供了一種更加直觀 友好的與用戶進(jìn)行交互的方式 利用Java語(yǔ)言進(jìn)行圖形用戶界面操作主要由java awt和javax swing兩個(gè)包來(lái)完成 其中 AWT包是圖形用戶界面處理的基本工具包 Swing包在AWT包的基礎(chǔ)上進(jìn)行了升級(jí) 擴(kuò)展 具有更加強(qiáng)大的圖形界面開(kāi)發(fā)功能 10 1圖形界面基礎(chǔ)AWT AWT是抽象窗口工具箱的簡(jiǎn)稱 包括了圖形界面編程的基本類庫(kù) 其作為Java語(yǔ)言GUI程序設(shè)計(jì)的核心 作用是給用戶提供基本的界面構(gòu)件 這些構(gòu)件可以用來(lái)建立圖形用戶界面的獨(dú)立平臺(tái) 從而使得用戶和機(jī)器之間更好地進(jìn)行交互 AWT包的內(nèi)容主要分為如下四部分 容器 用于放置基本組件 其本身也是一種組件 布局管理器 對(duì)容器中放置的組件進(jìn)行布局管理 事件處理 采用事件處理機(jī)制 使得用戶能夠通過(guò)圖形界面與系統(tǒng)進(jìn)行交互 基本組件 包括按鈕 標(biāo)簽 文本域等 是圖形界面的基本組成元素 10 1圖形界面基礎(chǔ)AWT 通過(guò)綜合使用AWT包的這些內(nèi)容 即可構(gòu)建出與用戶能夠友好交互的各種圖形界面 這幾部分內(nèi)容在AWT包中都是以類或者接口的形式體現(xiàn) 各種類或接口通過(guò)面向?qū)ο蟮乃枷胗袡C(jī)組織在一起 構(gòu)成了一個(gè)層次結(jié)構(gòu)的包 在AWT包的層次結(jié)構(gòu)中 event對(duì)應(yīng)著事件處理的相關(guān)內(nèi)容 Componet為組件的基類 包括基本組件 如Button Label Checkbox等 和容器Container類兩種 以Layout為結(jié)尾的FlowLayout BorderLayout等為布局管理器類 另外還有其他的一些輔助類 對(duì)于這些內(nèi)容 下面章節(jié)進(jìn)行詳細(xì)介紹 10 2界面容器 容器是用來(lái)存放其他組件的一種特殊組件 在Java語(yǔ)言中 所有容器類都是Container類的子類 Container類繼承了Component類 該類的兩個(gè)常用子類是Frame和Panel類 Frame和Panel類代表兩種不同類型的容器 下面分別進(jìn)行介紹 10 2 1框架窗口類Frame Frame類容器是一種帶有邊框的框架窗口 可以不依賴于其他組件獨(dú)立存在 Frame類繼承了Window類 可以帶標(biāo)題 設(shè)置大小等 Frame類中定義了許多操作容器的方法 如下所示 ImagegetIconImage 獲取此frame顯示在最小化圖標(biāo)中的圖像 RectanglegetMaximizedBounds 獲取此frame的最大化邊界 MenuBargetMenuBar 獲取此frame的菜單欄 StringgetTitle 獲得frame的標(biāo)題 booleanisResizable 指示此frame是否可由用戶調(diào)整大小 voidremove MenuComponentm 從此frame移除指定的菜單欄 voidsetIconImage Imageimage 設(shè)置此frame要顯示在最小化圖標(biāo)中的圖像 注意 Frame容器創(chuàng)建后默認(rèn)是不可見(jiàn)的 需要調(diào)用setVisible 方法將其設(shè)置為可見(jiàn) 10 2 2區(qū)域類Panel Panel類容器沒(méi)有任何邊框 而且需要存在于其他容器中 該類容器只是包含在其他容器中的一個(gè)區(qū)域 通常用來(lái)將許多組件組合在一個(gè)區(qū)域內(nèi) Panel類中定義的方法 如下所示 Panel 構(gòu)造方法 使用默認(rèn)的布局管理器創(chuàng)建新面板 Panel LayoutManagerlayout 構(gòu)造方法 創(chuàng)建具有指定布局管理器的新面板 voidaddNotify 創(chuàng)建Panel的同位體 AccessibleContextgetAccessibleContext 獲取與Panel相關(guān)的AccessibleContext 10 3布局管理器 布局管理器用于布局容器中的組件 包括設(shè)定組件的位置和尺寸大小等 每個(gè)容器被創(chuàng)建后 都會(huì)有一個(gè)默認(rèn)布局管理器 另外 可以設(shè)置指定的布局管理器對(duì)組件進(jìn)行管理 Java語(yǔ)言的AWT包提供了不同類別的布局管理器 包括BorderLayout FlowLayout CardLayout等 下面分別進(jìn)行介紹 10 3 1默認(rèn)管理器BorderLayout BorderLayout布局管理器將容器劃分為東 East 西 West 南 South 北 North 中 Center 五個(gè)區(qū)域 它是Frame類的默認(rèn)布局管理器 采用BorderLayout布局時(shí) 向容器中添加組件需要指定組件所在的區(qū)域 BorderLayout類的構(gòu)造方法主要有如下幾種 BorderLayout 使用默認(rèn)的居中對(duì)齊方式 水平和垂直間距為默認(rèn)值 BorderLayout intalign 使用指定對(duì)齊方式 水平和垂直間距為默認(rèn)值 BorderLayout intalign inthgap intvgap 使用指定的對(duì)齊方式 指定水平間距 垂直間距 10 3 1默認(rèn)管理器BorderLayout 除了構(gòu)造方法 BorderLayout類的其他一些常用方法如下所示 voidaddLayoutComponent Componentcomp Objectconstraints 使用指定的約束對(duì)象將指定組件添加到布局中 voidaddLayoutComponent Stringname Componentcomp 已過(guò)時(shí) 由addLayout Component Component Object 取代 ObjectgetConstraints Componentcomp 獲得指定組件的約束 intgetHgap 返回組件之間的水平間距 floatgetLayoutAlignmentX Containerparent 返回沿x軸的對(duì)齊方式 floatgetLayoutAlignmentY Containerparent 返回沿y軸的對(duì)齊方式 ComponentgetLayoutComponent Containertarget Objectconstraints 基于目標(biāo)Container的組件方向 獲得給定約束位置所對(duì)應(yīng)的組件 ComponentgetLayoutComponent Objectconstraints 獲得使用給定約束添加的組件 10 3 1默認(rèn)管理器BorderLayout intgetVgap 返回組件之間的垂直間距 voidinvalidateLayout Containertarget 該方法可使布局無(wú)效 指示布局管理器是否具有它應(yīng)該丟棄的緩存信息 voidlayoutContainer Containertarget 使用此邊界布局對(duì)容器參數(shù)進(jìn)行布局 DimensionmaximumLayoutSize Containertarget 在給出指定目標(biāo)容器中的組件的前提下 返回此布局的最大尺寸 DimensionminimumLayoutSize Containertarget 使用此布局管理器確定target容器的最小大小 DimensionpreferredLayoutSize Containertarget 基于容器中的組件 使用此布局管理器確定target容器的首選大小 voidremoveLayoutComponent Componentcomp 從此邊界布局中移除指定組件 voidsetHgap inthgap 設(shè)置組件之間的水平間距 voidsetVgap intvgap 設(shè)置組件之間的垂直間距 StringtoString 返回此邊界布局的狀態(tài)的字符串表示形式 說(shuō)明 每個(gè)區(qū)域只能顯示一個(gè)組件 如果在一個(gè)區(qū)域添加了多個(gè)組件 則只有最后添加的那個(gè)組件是可見(jiàn)的 10 3 2流布局管理器FlowLayout FlowLayout布局管理器用于將組件按照從左到右 從上到下的順序進(jìn)行布局 它是Panel類的默認(rèn)布局管理器 采用FlowLayout布局 不會(huì)改變組件的大小 按組件原有尺寸顯示 當(dāng)一個(gè)組件在本行放不下時(shí) 將自動(dòng)換到下一行 FlowLayout布局管理器組件之間默認(rèn)的間距是5個(gè)像素 默認(rèn)對(duì)齊方式是居中 當(dāng)然 可以調(diào)用相關(guān)方法設(shè)置不同的組件間距 行距以及對(duì)齊方式 FlowLayout類的構(gòu)造方法主要有如下幾種 FlowLayout 使用默認(rèn)的居中對(duì)齊方式 水平和垂直間距為默認(rèn)值 FlowLayout intalign 使用指定對(duì)齊方式 水平和垂直間距為默認(rèn)值 FlowLayout intalign inthgap intvgap 使用指定的對(duì)齊方式 指定水平間距 垂直間距 10 3 2流布局管理器FlowLayout 除了構(gòu)造方法 FlowLayout類的其他一些常用方法如下所示 voidaddLayoutComponent Stringname Componentcomp 將指定的組件添加到布局中 intgetAlignment 獲得此布局的對(duì)齊方式 intgetHgap 獲得組件之間以及組件與Container的邊之間的水平間隙 intgetVgap 獲得組件之間以及組件與Container的邊之間的垂直間隙 voidlayoutContainer Containertarget 布置該容器 DimensionminimumLayoutSize Containertarget 返回需要布置visible組件的最小維數(shù) 該組件包含在指定的目標(biāo)容器中 DimensionpreferredLayoutSize Containertarget 給出指定目標(biāo)容器中的visible組件 返回此布局的首選維數(shù) voidremoveLayoutComponent Componentcomp 從布局中移除指定的組件 voidsetVgap intvgap 設(shè)置組件之間以及組件與Container的邊之間的水平間隙 StringtoString 返回此FlowLayout對(duì)象及其值的字符串表示形式 10 3 3卡片布局管理器CardLayout CardLayout布局管理器用于將組件以卡片的形式進(jìn)行布局 采用CardLayout布局 每張卡片屬于不同的層次 并且充滿整個(gè)容器 當(dāng)往容器中添加組件時(shí) 需指定所在卡片的名字 CardLayout類的構(gòu)造方法主要有如下幾種 CardLayout 無(wú)參構(gòu)造方法 CardLayout inthgap intvgap 以指定間距創(chuàng)建CardLayout布局管理器 hgap指定卡片與容器的水平間距 vgap指定卡片與容器的垂直間距 10 3 3卡片布局管理器CardLayout 除了構(gòu)造方法 CardLayout類的其他一些常用方法如下所示 voidaddLayoutComponent Componentcomp Objectconstraints 將指定的組件添加到此卡片布局的內(nèi)部名稱表 voidfirst Containerparent 翻轉(zhuǎn)到容器的第一張卡片 intgetHgap 獲得組件之間的水平間隙 floatgetLayoutAlignmentX Containerparent 返回沿x軸的對(duì)齊方式 floatgetLayoutAlignmentY Containerparent 返回沿y軸的對(duì)齊方式 voidinvalidateLayout Containertarget 使布局無(wú)效 指示如果布局管理器緩存了信息 則應(yīng)該將其丟棄 voidlast Containerparent 翻轉(zhuǎn)到容器的最后一張卡片 voidlayoutContainer Containerparent 使用此卡片布局布置指定的容器 DimensionmaximumLayoutSize Containertarget 給出指定目標(biāo)容器中的組件 返回此布局的最大維數(shù) voidshow Containerparent Stringname 翻轉(zhuǎn)到已添加到此布局 使用addLayoutComponent 的具有指定name的組件 說(shuō)明 因?yàn)槿魏螘r(shí)候只有一張卡片是可見(jiàn)的 第一張卡片位于層次的最頂端 所以運(yùn)行結(jié)果只看到第一張卡片中的組件 10 3 4網(wǎng)格布局管理器GridLayout GridLayout布局管理器將容器劃分為由行和列組成的多個(gè)網(wǎng)格 每個(gè)網(wǎng)格放一個(gè)組件 采用GridLayout布局時(shí) 在容器中按照從左到右 從上到下的順序往網(wǎng)格中逐個(gè)添加組件 GridLayout類的構(gòu)造方法主要有如下幾種 GridLayout 無(wú)參構(gòu)造方法 GridLayout introws intcols 使用指定的行數(shù)和列數(shù) GridLayout introws intcols inthgap intvgap 使用指定的行數(shù)和列數(shù)及水平間距 垂直間距 10 3 4網(wǎng)格布局管理器GridLayout 除了構(gòu)造方法 GridLayout類的其他一些常用方法如下所示 voidaddLayoutComponent Stringname Componentcomp 將具有指定名稱的指定組件添加到布局 intgetColumns 獲取此布局中的列數(shù) intgetHgap 獲取組件之間的水平間距 intgetRows 獲取此布局中的行數(shù) intgetVgap 獲取組件之間的垂直間距 voidlayoutContainer Containerparent 使用此布局布置指定容器 DimensionpreferredLayoutSize Containerparent 使用此網(wǎng)格布局確定容器參數(shù)的首選大小 voidremoveLayoutComponent Componentcomp 從布局移除指定組件 voidsetColumns intcols 將此布局中的列數(shù)設(shè)置為指定值 StringtoString 返回此網(wǎng)格布局的值的字符串表示形式 10 3 5高級(jí)網(wǎng)格布局管理器GridBagLayout GridBagLayout布局管理器在GridLayout布局管理器的基礎(chǔ)上提供了更加復(fù)雜的功能 采用GridBagLayout布局時(shí) 一個(gè)組件可以跨越多個(gè)行列放在多個(gè)網(wǎng)格內(nèi) 另外 可以通過(guò)設(shè)定填充方式 間距等任意調(diào)整組件的大小和位置 GridBagLayout布局管理器引入了GridBagConstraints類 該類用于輔助定義有關(guān)組件布局的各種屬性 GridBagConstraints類的主要屬性有如下幾種 intanchor 指定組件在區(qū)域中放置的位置 intfill 指定組件填充方式 intgridheight 指定組件的高度 單位為網(wǎng)格個(gè)數(shù) intgridwidth 指定組件的寬度 單位為網(wǎng)格個(gè)數(shù) intgridx 指定組件的橫向坐標(biāo) 單位為網(wǎng)格個(gè)數(shù) intgridy 指定組件的縱向坐標(biāo) 單位為網(wǎng)格個(gè)數(shù) Insetsinsets 指定組件與區(qū)域的間隔大小 intipadx 指定組件間的橫向間距 intipady 指定組件間的縱向間距 10 3 5高級(jí)網(wǎng)格布局管理器GridBagLayout GridBagConstraints類的一些常用方法如下所示 voidaddLayoutComponent Componentcomp Objectconstraints 使用指定constraints對(duì)象將指定組件添加到布局中 protectedvoidadjustForGravity GridBagConstraintsconstraints Rectangler 根據(jù)約束幾何結(jié)構(gòu)和填充將x y 寬度和高度四個(gè)字段調(diào)整為正確值 protectedvoidAdjustForGravity GridBagConstraintsconstraints Rectangler 此方法已過(guò)時(shí) 僅提供向后兼容性 新代碼應(yīng)該調(diào)用adjustForGravity來(lái)代替 protectedvoidArrangeGrid Containerparent 此方法已過(guò)時(shí) 僅提供向后兼容性 新代碼應(yīng)該調(diào)用arrangeGrid來(lái)代替 GridBagConstraintsgetConstraints Componentcomp 獲得指定組件的約束 DimensionmaximumLayoutSize Containertarget 在給出指定目標(biāo)容器中的組件的前提下 返回此布局的最大維數(shù)DimensionminimumLayoutSize Containerparent 使用此網(wǎng)格包布局確定parent容器的最小大小 DimensionpreferredLayoutSize Containerparent 使用此網(wǎng)絡(luò)包布局確定parent容器的首選大小 voidremoveLayoutComponent Componentcomp 從此布局移除指定組件 10 4事件處理 事件處理是圖形界面與用戶進(jìn)行交互的重要內(nèi)容 Java語(yǔ)言的事件處理機(jī)制包括事件源 事件 事件處理器三個(gè)主要的概念 首先需要為事件源注冊(cè)相應(yīng)的事件處理器 事件源產(chǎn)生指定事件 事件處理器捕獲后進(jìn)行相應(yīng)事件處理 關(guān)于事件處理的具體內(nèi)容 下面進(jìn)行詳細(xì)介紹 10 4 1什么是事件處理 事件處理是圖形用戶界面中的重要部分 應(yīng)用程序生成的圖形界面應(yīng)該能夠響應(yīng)用戶的各種操作 如鼠標(biāo)單擊 鍵盤鍵按下 單擊按鈕等 程序?qū)τ脩舨僮鞯捻憫?yīng)使得系統(tǒng)能夠和用戶進(jìn)行各種交互 從而可以實(shí)現(xiàn)各種處理流程 圖形界面對(duì)用戶操作的響應(yīng)采用事件處理的機(jī)制來(lái)完成 該機(jī)制包括如下三個(gè)重要的概念 事件源 產(chǎn)生事件的各種組件 如窗口 按鈕 復(fù)選框等 事件 用戶對(duì)事件源的各種操作動(dòng)作 事件處理器 用于接收并處理事件的方法 10 4 1什么是事件處理 圖形用戶界面的事件處理機(jī)制是將事件處理授權(quán)給事件處理器 從而實(shí)現(xiàn)事件源與事件處理器的分離 事件處理器專門負(fù)責(zé)事件處理 事件源對(duì)發(fā)生的事件只做發(fā)送操作 不做任何其他處理 事件源與事件處理器之間通過(guò)具體事件進(jìn)行聯(lián)系 三者之間的關(guān)系如圖10 12所示 10 4 1什么是事件處理 在Java語(yǔ)言中 AWT事件處理部分的內(nèi)容主要由java awt event包來(lái)完成 針對(duì)各種AWT事件 java awt event包中定義了各種相應(yīng)的事件類 所有AWT事件類都由AWTEvent類派生而來(lái) 每個(gè)事件類分別對(duì)應(yīng)不同的事件類別 其中包含了該類事件的各種相關(guān)信息 可以調(diào)用相應(yīng)的API方法進(jìn)行獲取 另外 對(duì)所有事件類一個(gè)公共的功能就是能夠獲得事件源對(duì)象 在具體的事件處理方法中 往往需要提供事件源的各種信息 通過(guò)事件類即可以獲得事件源對(duì)象 事件處理器是事件處理的核心部件 java awt event包中定義了各種事件處理的接口 這些接口通常為XxxxListener的形式 稱為事件監(jiān)聽(tīng)器 對(duì)每一種事件監(jiān)聽(tīng)器接口 java awt event包又定義了相應(yīng)的實(shí)現(xiàn)類 通常為XxxxAdapter的形式 稱為事件適配器 事件處理器就是實(shí)現(xiàn)了事件監(jiān)聽(tīng)器接口或者繼承了事件適配器類的對(duì)象 其中的相應(yīng)方法負(fù)責(zé)處理具體的事件 10 4 2事件監(jiān)聽(tīng)器 事件監(jiān)聽(tīng)器是用于監(jiān)聽(tīng)事件源觸發(fā)事件的對(duì)象 其中包含對(duì)事件發(fā)生后的處理操作 在Java語(yǔ)言中 針對(duì)不同的事件 定義了相應(yīng)的事件監(jiān)聽(tīng)器接口 下面列舉一些較常用的事件監(jiān)聽(tīng)器接口 ActionListener 用于接收操作事件的監(jiān)聽(tīng)器接口 AdjustmentListener 用于接收調(diào)整事件的監(jiān)聽(tīng)器接口 AWTEventListener 該監(jiān)聽(tīng)器接口用于接收指派給對(duì)象的事件的通知 這些對(duì)象是Component MenuComponent或其子類的實(shí)例 ComponentListener 用于接收組件事件的監(jiān)聽(tīng)器接口 ContainerListener 用于接收容器事件的監(jiān)聽(tīng)器接口 FocusListener 用于接收組件上的鍵盤焦點(diǎn)事件的監(jiān)聽(tīng)器接口 HierarchyBoundsListener 用于接收組件的移動(dòng)和大小調(diào)整事件的監(jiān)聽(tīng)器接口 HierarchyListener 用于接收層次結(jié)構(gòu)更改事件的監(jiān)聽(tīng)器接口 InputMethodListener 接收輸入方法事件的監(jiān)聽(tīng)器接口 10 4 3事件適配器 10 4 2節(jié)介紹的事件監(jiān)聽(tīng)器通常都是以實(shí)現(xiàn)接口的方式進(jìn)行定義的 因?yàn)閷?shí)現(xiàn)接口就要實(shí)現(xiàn)其定義的所有方法 僅為實(shí)現(xiàn)一個(gè)事件方法而采用事件監(jiān)聽(tīng)器方式所寫的代碼會(huì)顯得非常重復(fù) 在Java語(yǔ)言中 針對(duì)每個(gè)事件監(jiān)聽(tīng)器接口 系統(tǒng)定義了相應(yīng)的實(shí)現(xiàn)類 稱為事件適配器 只要繼承事件適配器類 僅覆蓋需要的相應(yīng)方法就可以處理某個(gè)特定的事件了 這樣代碼變得更加簡(jiǎn)潔 下面列舉幾個(gè)較常用的事件適配器類 ComponentAdapter 用于接收組件事件的抽象適配器類 FocusAdapter 用于接收鍵盤焦點(diǎn)事件的抽象適配器類 KeyAdapter 接收鍵盤事件的抽象適配器類 MouseAdapter 接收鼠標(biāo)事件的抽象適配器類 MouseMotionAdapter 接收鼠標(biāo)移動(dòng)事件的抽象適配器類 WindowAdapter 接收窗口事件的抽象適配器類 10 5AWT基本組件 基本組件是構(gòu)成圖形用戶界面的基本元素 基本組件添加到容器中 由專門的布局管理器管理布局 通過(guò)事件機(jī)制來(lái)響應(yīng)用戶的操作 Java語(yǔ)言的AWT包提供了各種基本的圖形界面組件 包括Button Label Checkbox等 下面分別進(jìn)行介紹 10 5 1按鈕 按鈕Button是圖形界面中經(jīng)常使用的組件 用戶單擊按鈕時(shí)觸發(fā)一定的執(zhí)行動(dòng)作 Button類的一些常用方法如下所示 voidaddActionListener ActionListenerl 添加指定的操作監(jiān)聽(tīng)器 以接收來(lái)自此按鈕的操作事件 voidaddNotify 創(chuàng)建按鈕的同位體 AccessibleContextgetAccessibleContext 獲得與此Button相關(guān)的AccessibleContext StringgetActionCommand 返回此按鈕激發(fā)的操作事件的命令名稱 ActionListener getActionListeners 返回在此按鈕上注冊(cè)的所有操作監(jiān)聽(tīng)器的一個(gè)數(shù)組 StringgetLabel 獲得此按鈕的標(biāo)簽 voidremoveActionListener ActionListenerl 移除指定的操作監(jiān)聽(tīng)器 以便它不再接收來(lái)自此按鈕的操作事件 voidsetActionCommand Stringcommand 設(shè)置此按鈕激發(fā)的操作事件的命令名稱 10 5 2標(biāo)簽 標(biāo)簽Label用于在圖形界面上顯示一行只讀的文本 Label類的一些常用方法如下所示 voidaddNotify 創(chuàng)建此標(biāo)簽的同位體 AccessibleContextgetAccessibleContext 獲取與此標(biāo)簽相關(guān)的AccessibleContext intgetAlignment 獲取此標(biāo)簽的當(dāng)前對(duì)齊方式 StringgetText 獲取此標(biāo)簽的文本 protectedStringparamString 返回一個(gè)表示此Label狀態(tài)的字符串 voidsetAlignment intalignment 將此標(biāo)簽的對(duì)齊方式設(shè)置為指定的方式 voidsetText Stringtext 將此標(biāo)簽的文本設(shè)置為指定的文本 10 5 3單行文本域 上面介紹的標(biāo)簽組件顯示的文本是只讀的 用戶不能進(jìn)行編輯 單行文本域TextField組件提供了單行文本編輯的功能 TextField類的一些常用方法如下所示 voidaddActionListener ActionListenerl 添加指定的操作監(jiān)聽(tīng)器 以從此文本字段接收操作事件 voidaddNotify 創(chuàng)建TextField的同位體 booleanechoCharIsSet 指示此文本字段是否有一個(gè)回送字符集 AccessibleContextgetAccessibleContext 獲取與此TextField相關(guān)的AccessibleContext ActionListener getActionListeners 返回此文本字段上已注冊(cè)的所有操作監(jiān)聽(tīng)器的數(shù)組 chargetEchoChar 獲取用于回送的字符 T getListeners ClasslistenerType 返回當(dāng)前已在此TextField上注冊(cè)為FooListener的所有對(duì)象的數(shù)組 DimensiongetMinimumSize 獲取此文本字段的最小尺寸 DimensiongetMinimumSize intcolumns 獲取具有指定列數(shù)的文本字段的最小尺寸 DimensiongetPreferredSize 獲取此文本字段的首選大小 10 5 4多行文本域 單行文本域TextField雖然能夠讓用戶編輯文本 但只能在一行內(nèi)編輯 當(dāng)需要編輯多行文本時(shí) 需要使用多行文本域組件TextArea TextArea類的一些常用方法如下所示 voidaddNotify 創(chuàng)建TextArea的同位體 voidappend Stringstr 將給定文本追加到文本區(qū)的當(dāng)前文本 voidappendText Stringstr 已過(guò)時(shí) 從JDKversion1 1開(kāi)始 由append String 取代 AccessibleContextgetAccessibleContext 返回與此TextArea相關(guān)的AccessibleContext intgetColumns 返回此文本區(qū)中的列數(shù) DimensiongetMinimumSize 確定此文本區(qū)的最小大小 DimensiongetPreferredSize introws intcolumns 確定具有指定行數(shù)和列數(shù)的文本區(qū)的首選大小 intgetRows 返回此文本區(qū)的行數(shù) intgetScrollbarVisibility 返回指示文本區(qū)使用何種滾動(dòng)條的枚舉值 voidinsert Stringstr intpos 在此文本區(qū)的指定位置插入指定文本 voidinsertText Stringstr intpos 已過(guò)時(shí) 從JDKversion1 1開(kāi)始 由insert String int 取代 10 5 5復(fù)選框和單選按鈕 Checkbox組件屬于一種選擇按鈕 用戶可以進(jìn)行相關(guān)選項(xiàng)的選擇 結(jié)合CheckboxGroup類使用 Checkbox組件可以分別實(shí)現(xiàn)復(fù)選框和單選按鈕的功能 如果不給多個(gè)Checkbox組件設(shè)置分組CheckboxGroup 則這些Checkbox組件是復(fù)選框 用戶可以同時(shí)選中多個(gè)選項(xiàng) 如果給多個(gè)Checkbox組件設(shè)置為同一個(gè)分組CheckboxGroup 則這些Checkbox組件為單選按鈕 每次只能有一個(gè)選項(xiàng)選中 Checkbox類的一些常用方法如下所示 voidaddItemListener ItemListenerl 添加指定的項(xiàng)監(jiān)聽(tīng)器 以接收來(lái)自此復(fù)選框的項(xiàng)事件 voidaddNotify 創(chuàng)建Checkbox的同位體 AccessibleContextgetAccessibleContext 獲得與此Checkbox相關(guān)的Accessible Context CheckboxGroupgetCheckboxGroup 確定此復(fù)選框的組 ItemListener getItemListeners 返回已在此復(fù)選框上注冊(cè)的所有項(xiàng)監(jiān)聽(tīng)器所組成的數(shù)組 booleangetState 確定此復(fù)選框是處于 開(kāi) 狀態(tài) 還是處于 關(guān) 狀態(tài) protectedStringparamString 返回表示此Checkbox的狀態(tài)的字符串 protectedvoidprocessEvent AWTEvente 處理關(guān)于此復(fù)選框的事件 10 5 6列表 列表List組件用于列舉多個(gè)可供選擇的文本選項(xiàng) 包含單選和多選兩種模式 列舉的文本選項(xiàng)分為多行 只能進(jìn)行選擇 不能編輯 List類的一些常用方法如下所示 voidadd Stringitem intindex 向滾動(dòng)列表中索引指示的位置添加指定的項(xiàng) voidaddActionListener ActionListenerl 添加指定的操作監(jiān)聽(tīng)器以從此列表接收操作事件 voidaddItemListener ItemListenerl 添加指定的項(xiàng)監(jiān)聽(tīng)器以接收此列表的項(xiàng)事件 voiddeselect intindex 取消選擇指定索引處的項(xiàng) AccessibleContextgetAccessibleContext 獲取與此List關(guān)聯(lián)的AccessibleContext ActionListener getActionListeners 返回已在此列表上注冊(cè)的所有操作監(jiān)聽(tīng)器的數(shù)組 ItemListener getItemListeners 返回已在此列表上注冊(cè)的所有項(xiàng)監(jiān)聽(tīng)器的數(shù)組 DimensiongetMinimumSize 確定此滾動(dòng)列表的最小大小 intgetSelectedIndex 獲取列表中選中項(xiàng)的索引 StringgetSelectedItem 獲取此滾動(dòng)列表中選中的項(xiàng) 10 6Swing簡(jiǎn)介 AWT包包括了進(jìn)行圖形界面開(kāi)發(fā)的各方面內(nèi)容 如容器 組件 布局管理 事件處理等 采用AWT包開(kāi)發(fā)的圖形界面一個(gè)主要特點(diǎn)是依賴于具體的操作系統(tǒng) 不同的操作系統(tǒng) 顯示的圖形外觀可能不同 從JDK1 2版本以后 Java語(yǔ)言引入了一個(gè)新的圖形界面開(kāi)發(fā)包javax swing Swing包在AWT包的基礎(chǔ)上 完全采用Java語(yǔ)言開(kāi)發(fā) 實(shí)現(xiàn)了圖形界面的跨平臺(tái) Swing包提供了支持跨平臺(tái)功能的更加豐富的組件庫(kù) 也稱為輕量級(jí)組件 而把AWT的組件稱為重量級(jí)組件 javax swing包中的組件類通常以字母 J 開(kāi)頭 如JFrame JPanel JButton JLabel JCheckBox等 相對(duì)于AWT包 Swing包提供了更加強(qiáng)大的圖形界面開(kāi)發(fā)功能 在AWT包的基礎(chǔ)上增加了許多新的組件 Swing中的大部分組件都繼承了JComponet類 Swing包中與AWT包中對(duì)應(yīng)的組件 在使用方法上基本相同 只不過(guò) Swing包采用輕量級(jí)的方法在AWT的基礎(chǔ)上重新編寫了該組件 當(dāng)然 Swing包也增加了許多AWT沒(méi)有的組件 具有更加豐富的類庫(kù) 關(guān)于Swing界面開(kāi)發(fā)知識(shí)的詳細(xì)內(nèi)容 是可以專門通過(guò)一本書來(lái)介紹的 限于篇幅 這里不再詳細(xì)闡述 具體可參考相關(guān)材料 10 7Applet AWT包中的panel類有個(gè)特殊的子類java applet Applet Applet是用Java語(yǔ)言編寫的小應(yīng)用程序 嵌入到Web頁(yè)面中在客戶端瀏覽器執(zhí)行 每個(gè)Applet都有其生命周期 分為初始化 運(yùn)行 停止 消亡 對(duì)于Applet的相關(guān)知識(shí) 下面進(jìn)行詳細(xì)介紹 10 7 1什么是Applet Applet是用Java語(yǔ)言編寫的小應(yīng)用程序的簡(jiǎn)稱 可以直接嵌入到網(wǎng)頁(yè)中運(yùn)行 并能夠產(chǎn)生特殊的效果 在JavaApplet中 可以實(shí)現(xiàn)圖形繪制 字體和顏色控制 動(dòng)畫和聲音的插入以及人機(jī)交互 網(wǎng)絡(luò)交流等功能 Applet程序的執(zhí)行方式不同于一般的Java程序 一般的Java程序執(zhí)行是從它的main 方法被調(diào)用開(kāi)始的 而一個(gè)Applet通常不包含main 方法 Applet程序通常是被嵌入到HTML頁(yè)面中 由支持Java程序的Web瀏覽器執(zhí)行 開(kāi)發(fā) 執(zhí)行Applet程序的主要步驟如下所示 1 編寫JavaApplet源程序 2 將Applet源程序編譯生成為字節(jié)碼文件 3 在HTML頁(yè)面文件中使用標(biāo)簽引用步驟 2 中的字節(jié)碼文件嵌入Applet 4 訪問(wèn)包含Applet的HTML頁(yè)面 運(yùn)行Applet 在Java語(yǔ)言中 專門提供了java applet包用于支持Applet的開(kāi)發(fā) 其中 java applet Applet類是所有Applet應(yīng)用的基類 所有的Java小應(yīng)用程序都必須繼承該類 該類實(shí)際上是java awt Panel的子類 所以可直接使用圖形界面AWT中的相關(guān)內(nèi)容 另外 Java語(yǔ)言還定義了javax swing JApplet類 該類可以使用Swing包中的相關(guān)內(nèi)容 利用AWT和Swing包 Applet就可以創(chuàng)建各種標(biāo)準(zhǔn)的圖像界面程序 10 7 1什么是Applet 在java applet Applet類中定義了很多基本的方法 用于操作Applet 其中 一些主要的方法如下所示 booleanisActive 判斷一個(gè)Applet是否處于活動(dòng)狀態(tài) URLgetDocumentBase 檢索表示該Applet運(yùn)行的文件目錄的對(duì)象 URLgetCodeBase 獲取該Applet代碼的URL地址 StringgetParameter Stringname 獲取該Applet由name指定參數(shù)的值 AppletContextgetAppletContext 返回瀏覽器或小應(yīng)用程序觀察器 voidresize intwidth intheight 調(diào)整Applet運(yùn)行的窗口尺寸 voidshowStatus Stringmsg 在瀏覽器的狀態(tài)條中顯示指定的信息 ImagegetImage URLurl 按url指定的地址裝入圖像 ImagegetImage URLurl Stringname 按url指定的地址和文件名加載圖像 對(duì)于Applet中的最基本內(nèi)容 如何管理Applet的生命周期及運(yùn)行Applet 下面章節(jié)將進(jìn)行詳細(xì)介紹 10 7 2Applet生命周期 每個(gè)Applet都有其初始化 運(yùn)行 停止 消亡的過(guò)程 這些過(guò)程組成了Applet的生命周期 Applet運(yùn)行于客戶端的瀏覽器中 在生命周期的各種狀態(tài)下執(zhí)行相應(yīng)的任務(wù) 從而實(shí)現(xiàn)與用戶的交互 Applet類定義了一些與其生命周期有關(guān)的方法 在生命周期的不同階段 通過(guò)調(diào)用相應(yīng)方法可以實(shí)現(xiàn)各種有針對(duì)性的操作 對(duì)于Applet生命周期的不同階段 下面分別進(jìn)行介紹 1 初始化 初始化是Applet生命周期的開(kāi)始階段 通過(guò)調(diào)用Applet類的init 方法完成 init 方法在瀏覽器第一次加載Applet時(shí)被調(diào)用 而且在Applet生命周期中只執(zhí)行一次 2 運(yùn)行 運(yùn)行是Applet在生命周期中進(jìn)行服務(wù)所做的主要工作 通過(guò)調(diào)用Applet類的start 方法完成 一個(gè)Applet的主要功能 如播放視頻 顯示動(dòng)畫等都放在start 方法內(nèi) init 方法執(zhí)行完后 系統(tǒng)會(huì)自動(dòng)調(diào)用start 方法 另外 當(dāng)用戶從其他頁(yè)面返回包含Applet的當(dāng)前頁(yè)面時(shí)也會(huì)執(zhí)行start 方法 start 方法可以被多次執(zhí)行 3 停止 停止要通過(guò)調(diào)用Applet類的stop 方法完成 當(dāng)用戶離開(kāi)包含Applet的當(dāng)前頁(yè)面時(shí)系統(tǒng)會(huì)自動(dòng)執(zhí)行stop 方法 stop 方法的主要作用是當(dāng)用戶不再關(guān)注Applet時(shí)能夠停止一些沒(méi)用的動(dòng)作 stop 方法也能被多次執(zhí)行 4 消亡 消亡要通過(guò)調(diào)用Applet類的destroy 方法完成 當(dāng)瀏覽器被正常關(guān)閉時(shí) 系統(tǒng)會(huì)自動(dòng)調(diào)用此方法 該方法中放置的代碼主要用來(lái)回收一些系統(tǒng)資源 10 7 3運(yùn)行Applet Applet最終在支持Java程序的客戶端瀏覽器中運(yùn)行 要在瀏覽器中調(diào)用 運(yùn)行Applet 就要將Applet嵌入到Web頁(yè)面中 在HTML頁(yè)面中嵌入Applet需要使用標(biāo)簽 標(biāo)簽的語(yǔ)法格式如圖10 24所示 10 7 3運(yùn)行Applet 圖中參數(shù)為標(biāo)簽的子標(biāo)簽 用于為Applet傳遞參數(shù) 包含name和value兩個(gè)屬性 另外 標(biāo)簽還可以包含其他一些屬性 主要如下所示 Name 表示Applet的名稱 Width 表示Applet區(qū)域的寬度 Height 表示Applet區(qū)域的高度 10 8小結(jié) 本章介紹了Java語(yǔ)言中用于圖形界面開(kāi)發(fā)的AWT Swing包的相關(guān)內(nèi)容及Applet應(yīng)用程序的相關(guān)知識(shí) 重點(diǎn)介紹了用于圖形界面開(kāi)發(fā)的各種容器 布局管理器 事件處理 常用組件的具體使用 本章最后給出了一個(gè)完整的實(shí)例 其中 圖形界面開(kāi)發(fā)中容器 組件 事件的綜合運(yùn)用是本章的難點(diǎn) 讀者只有根據(jù)具體需求靈活使用各種組件類才能設(shè)計(jì)出更加友好的圖形界面 也需要在具體開(kāi)發(fā)過(guò)程中多動(dòng)手練習(xí) 從而更加深入地掌握如何進(jìn)行圖形界面開(kāi)發(fā) 第11章將介紹Java語(yǔ)言中XML開(kāi)發(fā)方面的知識(shí)- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 零點(diǎn) 起飛 Java 圖形 用戶界面
鏈接地址:http://www.820124.com/p-5429581.html