第06講 JAVA圖形界面設(shè)計(jì)_第1頁
第06講 JAVA圖形界面設(shè)計(jì)_第2頁
第06講 JAVA圖形界面設(shè)計(jì)_第3頁
第06講 JAVA圖形界面設(shè)計(jì)_第4頁
第06講 JAVA圖形界面設(shè)計(jì)_第5頁
已閱讀5頁,還剩53頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、JAVA的圖形界面設(shè)計(jì)(shj)抽象工具集AWT窗口和面板(min bn)JAVA的鍵盤和鼠標(biāo)事件常用組件菜單對話框共五十八頁Java圖形用戶界面概述(i sh) 圖形用戶界面的概念圖形用戶界面(Graphics User Interface)簡稱GUI,使用圖形的方式,借助菜單、按鈕等標(biāo)準(zhǔn)的界面元素,通過鼠標(biāo)和鍵盤操作,幫助(bngzh)用戶方便地向計(jì)算機(jī)系統(tǒng)發(fā)出命令,并將系統(tǒng)運(yùn)行的結(jié)果同樣以圖形的方式顯示給用戶。 共五十八頁圖形用戶界面跨平臺(tái)的策略(1)由編程工具提供相應(yīng)的方法(或函數(shù))實(shí)現(xiàn)所有的低級像素著色和每個(gè)窗口組件的繪制顯示(xinsh)。優(yōu)點(diǎn):直接利用系統(tǒng)的底層來實(shí)現(xiàn)圖形操作,在

2、各個(gè)平臺(tái)上運(yùn)行的效率更高。缺點(diǎn):必須為不同的系統(tǒng)編寫不同的代碼代表的工具:Tcl語言的工具包Tk 共五十八頁圖形用戶界面跨平臺(tái)的策略(2)為多種平臺(tái)創(chuàng)建一個(gè)抽象(chuxing)的跨平臺(tái)的工具包。編程語言對圖形的各種操作被定義在一個(gè)“抽象(chuxing)窗口”中進(jìn)行。優(yōu)點(diǎn):應(yīng)用程序的外觀在各種平臺(tái)上均保持一致。缺點(diǎn):速度和效率低代表的工具:JAVA共五十八頁Java的圖形用戶界面技術(shù)的兩個(gè)發(fā)展階段(jidun)(1)Java 1.0版本的抽象窗口工具包AWT(Abstract Window Toolkit)(2)Java 1.2版本的Swing開發(fā)包。共五十八頁AWT (1)Java基礎(chǔ)類(

3、JFC)的一部分(2)實(shí)現(xiàn)跨平臺(tái)的原理:實(shí)現(xiàn)使用了“對等” 機(jī)制 每一個(gè)Java GUI窗口組件(z jin)都在底層的窗口系統(tǒng)中有一個(gè)對應(yīng)的組件(z jin)。對等系統(tǒng)的實(shí)現(xiàn)以及Java組件(z jin)與對等組件(z jin)之間的交流的實(shí)現(xiàn)都隱藏在底層JVM實(shí)現(xiàn)中。 AWT提供了一套與本地圖形界面進(jìn)行交互的接口。AWT中的圖形函數(shù)與操作系統(tǒng)所提供的圖形函數(shù)之間有著一一對應(yīng)的關(guān)系。 AWT所提供的圖形功能是各種通用型操作系統(tǒng)所提供的圖形功能的交集。(3)AWT組件稱為重量級組件共五十八頁Swing(1)在AWT的基礎(chǔ)上構(gòu)建的一套新的圖形界面系統(tǒng) ,用100%的Java代碼來實(shí)現(xiàn)(2)它支持

4、可更換的觀感和主題 (3)Swing組件(z jin)稱為輕量級組件(z jin) (4)缺點(diǎn)是執(zhí)行速度較慢,優(yōu)點(diǎn)就是可以在所有平臺(tái)上采用統(tǒng)一的行為 共五十八頁為什么學(xué)習(xí)使用AWT (1)已有的很多應(yīng)用程序的代碼是使用AWT的 (2)目前大多數(shù)的嵌入式Java虛擬機(jī)都提供了對AWT 的支持但是(dnsh)不提供對Swing的支持,因此也需要學(xué)習(xí)使用AWT來寫代碼 共五十八頁抽象(chuxing)窗口工具集AWTJAVA 也象其它面向?qū)ο蟪绦蛟O(shè)計(jì)語言一樣,提供進(jìn)行圖形用戶界面(即GUI)設(shè)計(jì)的能力。其中最重要的就是抽象工具集AWT ( Abstract Window Toolkit)和Swing

5、 ,它們的目標(biāo)就是讓程序設(shè)計(jì)人員構(gòu)建一個(gè)通用的GUI,使其在所有平臺(tái)上都能正常顯示,對每一個(gè)可操作的用戶界面都可對其進(jìn)行操作來觸發(fā)各種事件(shjin),從而提供程序員來處理事件(shjin)。共五十八頁AWT工具包的類的繼承關(guān)系(gun x)AWT繼續(xù)關(guān)系如下圖所示。Component類是所有組件的父類,在該類中實(shí)現(xiàn)了一些基本的方法。Component類直接繼承Object,屬于java.awt包共五十八頁windows窗口系統(tǒng)中顯示出來的各種對象都可以稱為組件 (或稱構(gòu)件)。 AWT界面的組成(z chn)上面的類對應(yīng)于圖形界面上的組件,因此我們也將對應(yīng)的類稱為組件。AWT的界面是由組件構(gòu)

6、成,所有的組件都是繼承Component組件而來。組件有兩種:一種是容器組件,一種是基本組件。(1)基本組件:按鈕(Button),標(biāo)簽(Label),文本區(qū)(TextArea),文本框(TextField),作圖區(qū)(Canvas),滑動(dòng)條(Scrollbar),列表(List),核選框(Checkbox),選擇框(Choice), 菜單(Menu),菜單條(Menubar)。(2)容器組件:窗口組件 Wndow、Dialog、FileDialog、Frame和面板 Panel。容器組件可以容納AWT組件,同時(shí)面板組件Panel還可以包含在AWT容器中。容器的最高父類為Container類。共

7、五十八頁共五十八頁窗口(chungku)與面板 一、窗口窗口Window是一個(gè)重要(zhngyo)的容器類構(gòu)件,所有的用戶界面構(gòu)件都是添加在窗口當(dāng)中的。在Java的AWT工具包中有一個(gè)Window類,但它生成的窗口沒有標(biāo)題和改變窗口大小的按鈕。實(shí)際開發(fā)中是使用Window類的兩個(gè)子類,他們分別是框架(Frame)類和Dialog類,它們是一種帶標(biāo)題框并且可以改變大小的窗口的類。 共五十八頁舉例:使用Frame類來創(chuàng)建(chungjin)一個(gè)簡單的窗口程序 Frame類的主要成員方法: (1)setSize(int a, int b) - 設(shè)置窗口的大小 (2)setBackground(Col

8、or c)- 設(shè)置窗口的背景顏色 (3)setVisible(boolean b)- 使窗口可見或不可見 (4)Frame() - 構(gòu)造函數(shù) (5)Frame(String title) - 帶字符串參數(shù)的構(gòu)造函數(shù)。 該字符串用于設(shè)置窗口的標(biāo)題。 (6)Frame類繼承window類,而在window類中有一個(gè)成員方法show(),它也可以替代setVisible(boolean b)方法來控制窗體的可見性。 sourceex6sources1MyFrame1.java sourceex6sources2MyFrame2.java sourceex6sources3MyFrame3.java共

9、五十八頁二、面板在Java中,面板(Panel)是容器類的一種。Panel提供Java語言程序?qū)崿F(xiàn)人機(jī)交互的對話空間。Panel為在窗口中安放其他組件提供一個(gè)基礎(chǔ)。例如:可以(ky)把圖形元件(按鈕、列表框等)放在一個(gè)面板上,實(shí)現(xiàn)事件的捕捉和控制。 演示:sourceex6sources4MyPanel.java共五十八頁在窗口的演示例子中,窗口不能關(guān)閉,只能在控制臺(tái)上按Ctrl+C中斷程序(chngx)的執(zhí)行來退出。沒有增加組件。 如何才能在窗口上增加組件呢?如何實(shí)現(xiàn)對窗口的有關(guān)事件、窗口上的組件的事件控制呢?共五十八頁三、界面的布局 我們將組件放入容器便能夠構(gòu)成基本的用戶界面。 通過Con

10、tainer.add(Component) 方法添加組件到容器上。 基本組件在容器中是有布局的。如果沒有指定組件在該容器中的布局方式,AWT會(huì)為該容器提供(tgng)一個(gè)缺省的布局方式。AWT容器的布局方式: FlowLayout 流布局 BorderLayout 邊框布局 GridLayout 網(wǎng)格布局 CardLayout 卡片布局 GridBagLayout 動(dòng)態(tài)網(wǎng)格布局 演示: sourceex6sources5MyLayout.java共五十八頁(1)FlowLayout布局管理器 演示: sourceex6sources6MyFlowLayout.javaFlowLayout型布局

11、管理器對容器中組件(z jin)進(jìn)行布局的方式是將組件逐個(gè)地安放在容器的一行上,一行放滿后就另起一行。 與其它布局管理器不同的是,F(xiàn)lowLayout布局管理器并不強(qiáng)行設(shè)定組件的大小,而是允許組件擁有自己所希望的尺寸。注意:每個(gè)組件都有一個(gè)getPreferredSize()方法,容器的布局管理器會(huì)調(diào)用這一方法取得每個(gè)組件希望的大小。 窗口改變大小,組件的布局也會(huì)隨之改變。共五十八頁在默認(rèn)的情況下,F(xiàn)lowLayout將組件居中放置在容器的某一行上,如果不想采用這種居中對齊的方式,F(xiàn)lowLayout的構(gòu)造方法中提供了一個(gè)對齊方式的可選項(xiàng)align,適應(yīng)(shyng)該選項(xiàng),可以將組件的對齊方

12、式設(shè)置為左對齊或右對齊。align的可取值為FlowLayout.LEFT,F(xiàn)lowLayout.RIGHT和FlowLayout.CENTER三種形式。它們分別將組件對齊方式設(shè)為左對齊、右對齊和中間對齊。 FlowLayout的構(gòu)造方法中還有一對可選項(xiàng)hgap和vgap,使用這對可選項(xiàng)可以設(shè)置組件的水平間距和垂直間距。 FlowLayout類有三種構(gòu)造方法: public FlowLayout(); public FlowLayout(int align) public FlowLayout(int align, int hgap, int vgap); 共五十八頁(2) BorderLay

13、out布局管理器 演示: sourceex6sources7MyBorderLayout.javaBorderLayout布局管理器是Dialog類和Frame類的默認(rèn)布局管理器。BorderLayout管理的容器均被分成五個(gè)區(qū)域:即東(East)、南(South)、西(West)、北(North)和中(Center)。需要注意的是區(qū)域的名稱和字母的大小寫要書寫正確(zhngqu)。 組件必須通過add(Component,int)方法加入到容器的五個(gè)命名區(qū)域之一中,否則,它們將是不可見的。 共五十八頁在容器的每個(gè)區(qū)域只能加入一個(gè)(y )組件,如果試圖將多個(gè)組見加到某個(gè)區(qū)域中,那么只有一個(gè)組件

14、是可見的。對于East,South,West和North這四個(gè)邊界區(qū)域,如果其中的某個(gè)區(qū)域沒有使用,那么它的大小將變?yōu)?,此時(shí)Center區(qū)域?qū)?huì)擴(kuò)展并占據(jù)這個(gè)未用區(qū)域的位置。如果四個(gè)邊界區(qū)域都沒有使用,那么Center區(qū)域?qū)?huì)占據(jù)整個(gè)窗口。 共五十八頁(3) GridLayout布局管理器 演示:sourceex6sources8MyGridLayout.javaGridLayout是一種網(wǎng)格式的布局管理器,它將容器空間分成若干行乘若干列的網(wǎng)格,組件依次放入其中,每個(gè)組件占據(jù)一格GridLayout類有三種構(gòu)造方法:public GridLayout() - 缺省構(gòu)造函數(shù)。只有一行(yxng

15、)。public GridLayout(int rows, int cols) - 分別指定行數(shù)和列數(shù)作為參數(shù)的構(gòu)造函數(shù)。行和列至少有一個(gè)不為0;public GridLayout(int rows, int cols, int hgap, int vgap) - 指定行數(shù)、列數(shù)、水平和垂直間距的構(gòu)造函數(shù)。行和列至少有一個(gè)不為0;共五十八頁網(wǎng)格每列的寬度是相同(xin tn)的,這個(gè)寬度等于容器的寬度除以網(wǎng)格的列數(shù),網(wǎng)格每行的高度也是相同的,其值等于容器的高度除以網(wǎng)格的行數(shù),組件放入容器的次序決定了它所占的位置。每行網(wǎng)格從左到右依次填充,一行用完后轉(zhuǎn)入下一行。 共五十八頁(4) CardLay

16、out布局管理器 演示(ynsh):sourceex6sources9MyCardLayout.javaCardLayout是一種卡片式的布局管理器,它將容器中的組件處理為一系列卡片,每一時(shí)刻只顯示其中的一張(一個(gè)組件)。 共五十八頁四、事件及其處理在事件處理的過程中,主要涉及三類對象: Event-事件,用戶對界面操作(cozu)在java語言上的描述,以類的形式出現(xiàn),例如鍵盤操作(cozu)對應(yīng)的事件類是KeyEvent。 Event Source-事件源,事件發(fā)生的場所,通常就是各個(gè)組件,例如按鈕Button。 Event handler-事件處理者,接收事件對象并對其進(jìn)行處理的對象 例

17、如:在窗口中點(diǎn)擊窗口的關(guān)閉按鈕(右上角),就會(huì)觸發(fā)一個(gè)windowClosing事件,那么這個(gè)窗口就稱作該事件的事件源。 共五十八頁在DELPHI、BCB、VB等OOP程序設(shè)計(jì)語言中: 程序?qū)κ录姆磻?yīng)是通過(tnggu)執(zhí)行一段被稱為事件方法的代碼來實(shí)現(xiàn)的,而編寫這段代碼是由程序設(shè)計(jì)者來完成的。 在Java語言中: 事件源對事件的監(jiān)聽與處理不是由其本身的成員方法來實(shí)現(xiàn)的,而是委托給另外一個(gè)對象來完成的,這個(gè)另外的對象稱為事件監(jiān)聽者,通過執(zhí)行事件監(jiān)聽者的事件方法來對事件作出反應(yīng)。 一個(gè)事件源組件的事件監(jiān)聽者是一個(gè)自定義類或已有類的對象。 共五十八頁為了實(shí)現(xiàn)事件監(jiān)聽者的功能,必須滿足以下三個(gè)條件

18、: (實(shí)現(xiàn)事件監(jiān)聽的三個(gè)步驟) (1)事件監(jiān)聽者必須實(shí)現(xiàn)與事件相關(guān)(xinggun)的接口。在Java中已經(jīng)定義了所有可能發(fā)生的事件類并且預(yù)置了相應(yīng)的事件接口,在這些事件接口中定義了事件處理的抽象方法。系統(tǒng)正是通過這些已定義好的事件和事件接口來傳遞事件消息和進(jìn)行事件處理的,因此事件監(jiān)聽者必須通過implements關(guān)鍵字來實(shí)現(xiàn)與所監(jiān)聽事件相對應(yīng)的接口。 (2)事件監(jiān)聽者必須重置(也稱覆蓋)接口中的方法。由于接口中的方法都是抽象的方法,在事件監(jiān)聽者中必須對接口中的方法依據(jù)事件處理的要求進(jìn)行定義。這段重新定義的代碼就是具有事件處理功能的事件處理方法代碼、它是整個(gè)事件處理的核心部分。(3)將事件監(jiān)聽

19、者通過事件源的addxxxListener()方法進(jìn)行注冊。這種注冊將事件源與事件監(jiān)聽者聯(lián)系起來,使得事件監(jiān)聽者接受事件源的委托去監(jiān)聽事件源所發(fā)生的事件并進(jìn)行相應(yīng)的事件處理。 演示:sourceex6sources9MyCardLayout.java共五十八頁JAVA中常見(chn jin)的事件及繼承關(guān)系: 對于每類事件都有一個(gè)接口,這個(gè)接口必須由想接收這個(gè)事件的類的對象實(shí)現(xiàn)。這個(gè)接口還要求定義一個(gè)或多個(gè)方法,當(dāng)發(fā)生特定的事件時(shí),就會(huì)調(diào)用(dioyng)這些方法。 共五十八頁各類事件的處理接口及其方法 : 參見P156 表8.1AWT事件共有10類,可以歸為兩大類:低級事件和高級事件。 低級

20、事件 ComponentEvent( 組件事件:組件尺寸的變化,移動(dòng)) ContainerEvent( 容器事件:組件增加,移動(dòng)) WindowEvent( 窗口事件:關(guān)閉窗口,窗口閉合,圖標(biāo)化) FocusEvent( 焦點(diǎn)事件:焦點(diǎn)的獲得和丟失) KeyEvent( 鍵盤事件:鍵按下、釋放) MouseEvent( 鼠標(biāo)事件:鼠標(biāo)單擊,移動(dòng)) 高級事件(語義事件) ActionEvent(動(dòng)作事件:按鈕按下,TextField中按Enter鍵) AdjustmentEvent(調(diào)節(jié)事件:在滾動(dòng)條上移動(dòng)滑塊以調(diào)節(jié)數(shù)值) ItemEvent(項(xiàng)目事件:選擇項(xiàng)目,不選擇“項(xiàng)目改變”) TextE

21、vent(文本事件,文本對象改變)后面我們(w men)將重點(diǎn)介紹鼠標(biāo)、鍵盤、窗口事件的處理共五十八頁事件適配器(Adapter)類 Java語言為一些Listener接口提供了適配器(Adapter)類。可以通過繼承事件所對應(yīng)的Adapter類,重寫需要方法,無關(guān)方法不用實(shí)現(xiàn)。事件適配器為我們提供了一種簡單的實(shí)現(xiàn)監(jiān)聽器的手段, 可以縮短程序代碼。但是,由于java的單一繼承機(jī)制,當(dāng)需要多種監(jiān)聽器或此類已有父類時(shí),就無法(wf)采用事件適配器了。 共五十八頁java.awt.event包中定義的事件適配器類包括(boku)以下幾個(gè):1ComponentAdapter( 組件適配器) 2Cont

22、ainerAdapter( 容器適配器) 3FocusAdapter( 焦點(diǎn)適配器) 4KeyAdapter( 鍵盤適配器) 5MouseAdapter( 鼠標(biāo)適配器) 6MouseMotionAdapter( 鼠標(biāo)運(yùn)動(dòng)適配器)7WindowAdapter( 窗口適配器) 演示:sourceex6sources10MyButton2.JAVA共五十八頁常用(chn yn)組件一、按鈕 (Button)1、構(gòu)造方法: Button() Button(Stringlabel)2、其它(qt)方法: String getLabel(); void setLabel( String label )共五

23、十八頁3、按鈕可注冊的事件(shjin)監(jiān)聽器 ActionListener ComponentListener FocusListener KeyListener MouseListener MouseMotionListener 演示:sourceex6sources10MyButton2.JAVA共五十八頁二、復(fù)選框 (Checkbox)復(fù)選框提供簡單的“on/off”開關(guān),旁邊(pngbin)顯示文本標(biāo)簽。1、構(gòu)造方法Checkbox()Checkbox(Stringlabel)Checkbox(Stringlabel, booleanstate)Checkbox(Stringlabe

24、l, booleanstate, CheckboxGroupgroup)Checkbox(Stringlabel, CheckboxGroupgroup, booleanstate)共五十八頁構(gòu)造方法使用(shyng)舉例: setLayout(new GridLayout(3,1);add(new Checkbox(one,null,true);add(new Checkbox(two);add(new Checkbox(three);共五十八頁2、其它(qt)方法 String getLabel(); boolean getState(); void setLabel( String la

25、bel ); void setState( boolean state );共五十八頁3、可注冊(zhc)的事件監(jiān)聽器 ComponentListener FocusListener ItemListener KeyListener MouseListener MouseMotionListener 共五十八頁復(fù)選框用ItemListener 來監(jiān)聽ItemEvent事件,當(dāng)復(fù)選框狀態(tài)改變(gibin)時(shí)用getStateChange()獲取當(dāng)前狀態(tài)。使用getItem()獲得被修改復(fù)選框的字符串對象。class Handler implements ItemListener public v

26、oid itemStateChanged(ItemEvent ev)String state = deselected;if (ev.getStateChange() = = ItemEvent.SELECTED)state = selected System.out.println(ev.getItem()+ +state);共五十八頁三、復(fù)選框組(CheckboxGroup) 使用復(fù)選框組,可以實(shí)現(xiàn)(shxin)單選框的功能。方法如下: setLayout(new GridLayout(3, 1);CheckboxGroup cbg = new CheckboxGroup();add(ne

27、w Checkbox(one, cbg, true);add(new Checkbox(two, cbg, false);add(new Checkbox(three, cbg, false);共五十八頁共五十八頁四、標(biāo)簽(Label)標(biāo)簽是一種放到其他組件上的其他組件(例如面板)上的靜止的正文(zhngwn)文本。 1、構(gòu)造方法 Label(); Label( String text ) Label( String text, intalignment )共五十八頁2、其它(qt)方法int getAlignment( );String getText( );void setAlignmen

28、t(intalignment);void setText(Stringtext );alignment的取值有 CENTER 1 LEFT 0 RIGHT 2 共五十八頁3、可注冊(zhc)的事件監(jiān)聽器 ComponentListener FocusListener KeyListener MouseListener MouseMotionListener共五十八頁五、列表框 ( List )列表框是向用戶提供多個(gè)選項(xiàng)的列表,它允許用戶從多個(gè)選項(xiàng)中選擇(xunz)某一項(xiàng)或幾項(xiàng)。列表框的所有條目都是可見的。如果選項(xiàng)很多,超出了列表框可見區(qū)的范圍,則列表框的旁邊將會(huì)出現(xiàn)一個(gè)滾動(dòng)條。 共五十八頁1、

29、構(gòu)造方法 List( ) ; List( int rows ) ; List( introws, booleanmultipleMode ) ;2、其它方法 非常豐富(fngf)??蓞⒖糐DK DOC.共五十八頁3、可注冊的事件(shjin)監(jiān)聽器 ActionListener ComponentListener FocusListener ItemListener KeyListener MouseListener MouseMotionListener演示: MyList.java共五十八頁六、文本域 ( TextField )文本域(TextField)是用來讓用戶輸入信息的,它是一個(gè)能

30、夠接收(jishu)用戶鍵盤輸入的小區(qū)域。 1、構(gòu)造函數(shù)TextField()TextField(intcolumns)TextField(Stringtext)TextField(Stringtext, intcolumns)共五十八頁2、其它(qt)方法boolean echoCharIsSet() ;int getColumns();char getEchoChar();void setColumns(intcolumns);void setEchoChar(charc) void setText(Stringt)String getText() ;String getSelectedT

31、ext() ;共五十八頁3、可注冊(zhc)的事件監(jiān)聽器 ActionListener ComponentListener FocusListener KeyListener MouseListener MouseMotionListener TextListener 演示:MyTextField.java 共五十八頁七、文本輸入?yún)^(qū)(TextArea) TextArea可以(ky)顯示多行多列的文本。使用setEditable(boolean)方法,可以(ky)將其設(shè)置為只讀的。在TextArea中可以(ky)顯示水平或垂直的滾動(dòng)條。參見JDK DOC共五十八頁可注冊(zhc)的事件監(jiān)聽器 C

32、omponentListener FocusListener KeyListener MouseListener MouseMotionListener TextListener 共五十八頁菜單(ci dn)一、下拉菜單在java中由三個(gè)類實(shí)現(xiàn)的,它們是MenuBar,Menu和MenuItem,分別對應(yīng)(duyng)菜單欄、菜單和菜單項(xiàng)。 共五十八頁MenuBar只能被添加到Frame對象中,作為(zuwi)整個(gè)菜單樹的根基。 使用 Frame的setMenuBar方法添加MenuBar;Menu 下拉菜單。它可以被添加到MenuBar中或其它Menu中。 使用MenuBar或Menu的add方法添加Menu。MenuItemMenuItem是菜單樹中的“葉子節(jié)點(diǎn)”。MenuItem通常被添加到一個(gè)Menu中。 使用Menu的add方法添加MenuItemMenuBar和Menu都沒有必要注冊監(jiān)聽器,只需要對MenuItem添加監(jiān)聽器ActionListener,完成相應(yīng)操作。sourceJavaCourseJavaSampleTestMenuBar.java共五十八頁二、彈出式菜單彈出式菜單使用其構(gòu)造方法MenuPopup()創(chuàng)建。然后可以將任意的菜單條目MenuItem或菜單Menu加入到彈出式菜單中去,這些菜單條目的創(chuàng)建和加入

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論