《Java程序設(shè)計(jì)與案例》課件第5章 圖形用戶界面
《《Java程序設(shè)計(jì)與案例》課件第5章 圖形用戶界面》由會(huì)員分享,可在線閱讀,更多相關(guān)《《Java程序設(shè)計(jì)與案例》課件第5章 圖形用戶界面(107頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、圖形用戶界面設(shè)計(jì)15 5主要內(nèi)容4Java的GUI簡(jiǎn)介4自定義圖形設(shè)計(jì)圖形、文字、圖象4Java的標(biāo)準(zhǔn)組件容器和組件GUI的布局4事件處理25 5圖形用戶界面GUI4字符界面用字符串、命令行的方式與用戶交互4圖形用戶界面:GraphicsUserInterface用直觀的圖形來(lái)表示數(shù)據(jù)用直觀、方便的GUI標(biāo)準(zhǔn)組件來(lái)接收命令GUI組成成分的標(biāo)準(zhǔn)化使用圖形的方式借助菜單、按鈕等標(biāo)準(zhǔn)界面元素和鼠標(biāo)操作,來(lái)幫助用戶方便地向計(jì)算機(jī)系統(tǒng)發(fā)出命令,啟動(dòng)操作,并將系統(tǒng)運(yùn)行的結(jié)果同樣以圖形的方式顯示給用戶。35 5用戶界面設(shè)計(jì)原那么4控制權(quán)在用戶4界面與操作的風(fēng)格一致性4寬容容錯(cuò)性4簡(jiǎn)潔與美觀并重45 5圖形用
2、戶界面簡(jiǎn)介4圖形用戶界面的構(gòu)成4容器:布局、安排4標(biāo)準(zhǔn)組件4用戶自定義成分4設(shè)計(jì)&實(shí)現(xiàn)圖形用戶界面的工作4創(chuàng)立GUI各組成成分,并安排附屬位置關(guān)系,根據(jù)具體需要對(duì)其進(jìn)行排序,構(gòu)成完整外觀。4定義GUI各成分對(duì)不同事件的響應(yīng),實(shí)現(xiàn)與用戶的交互功能。55 5界面構(gòu)成容器用戶自定義成分v容器是用來(lái)組織其他界面成分和元素的單元。一般一個(gè)圖形用戶界面對(duì)應(yīng)一個(gè)復(fù)雜容器。如一窗口v標(biāo)準(zhǔn)組件是圖形用戶界面的最小單位,它里面不再包含其他的成分。如單項(xiàng)選擇按鈕,文本框,菜單v用戶自定義成分是指編程人員根據(jù)用戶需要設(shè)計(jì)一些用戶自定義的圖形界面成分。如繪制幾何圖形標(biāo)準(zhǔn)組件65 5界面元素4容器是用來(lái)組織其他界面成分和
3、元素的單元。4可以形成容器的層次,構(gòu)筑復(fù)雜結(jié)構(gòu)4WindowFrame、Applet、Dialog4組件是圖形用戶界面的根本單位,它里面不再包含其他的成分。4GUI組件是圖形用戶界面標(biāo)準(zhǔn)化的結(jié)果。常用的組件有:4選擇類的:單項(xiàng)選擇按鈕、復(fù)選按鈕、下拉列表;4文字處理類的:文本框、文本區(qū)域4命令類的:按鈕、菜單等4GUI組件的作用是完成與用戶的交互。包括接收用戶的命令、文本或選擇輸入,向用戶顯示一段文本或一個(gè)圖形等。75 5界面元素4使用組件通常需要如下的步驟4創(chuàng)立某組件類的對(duì)象,指定其大小等屬性。4使用某種布局策略,將該組件對(duì)象參加到某個(gè)容器中的某指定位置處。4將該組件對(duì)象注冊(cè)給它所能產(chǎn)生的事
4、件對(duì)應(yīng)的事件監(jiān)聽者,重載事件的處理方法,實(shí)現(xiàn)利用該組件對(duì)象與用戶交互的功能。4用戶自定義成分4顯示文字、繪制圖形、顯示圖象4不能像標(biāo)準(zhǔn)組件一樣被系統(tǒng)識(shí)別和成認(rèn),只起裝飾作用。4不能響應(yīng)用戶的動(dòng)作,不具有交互功能。85 5圖形用戶界面GUI4Java的圖形用戶界面編程:為方便圖形用戶界面的開發(fā),設(shè)計(jì)了專門的類庫(kù)來(lái)生成各種標(biāo)準(zhǔn)圖形界面元素和處理圖形界面的各種事件,這個(gè)用來(lái)生成圖形界面的類庫(kù)就是java.awt包。AWT是abstractwindowtoolkit抽象窗口工具集的縮寫。AWT類庫(kù)中的各種操作被定義在一個(gè)窗口中進(jìn)行,開發(fā)人員用AWT開發(fā)出的圖形用戶界面可以適用于所有的平臺(tái)系統(tǒng)。95 5
5、AWT包4AbstractWindowToolkit(抽象窗口工具集)4提供各種構(gòu)成GUI的標(biāo)準(zhǔn)構(gòu)件。4AWT類庫(kù)中的各種操作被定義在一個(gè)窗口中進(jìn)行的。4抽取不同軟硬件平臺(tái)中所實(shí)現(xiàn)的窗口的公共特性。4依賴于具體平臺(tái)系統(tǒng)實(shí)現(xiàn):顯示效果可能不同。4提供與機(jī)器無(wú)關(guān)的根本GUI標(biāo)準(zhǔn)組件4選擇類組件:?jiǎn)雾?xiàng)選擇按鈕、復(fù)選框、下拉選單、4列表框4文字處理類組件:標(biāo)簽、文本框、編輯框。4命令類組件:按鈕、工具欄、菜單等。105 5從一個(gè)簡(jiǎn)單窗口開始4創(chuàng)立GUI應(yīng)用程序4Frame必不可少4它是帶標(biāo)題的頂層窗口,是構(gòu)建應(yīng)用程序圖形界面的根底,它為應(yīng)用程序?qū)崿F(xiàn)人機(jī)交互提供了對(duì)話窗口4先來(lái)建一個(gè)空的窗口應(yīng)用:Emp
6、ty.java4注意:一定要處理關(guān)閉窗口的事件115 5import java.awt.*;/mustimporttouseGUI/mustextendsFrameinanapplicationpublicclassEmptyextends Frame/暫時(shí)采用1.0.2的事件處理方法,關(guān)閉窗口publicbooleanhandleEvent(Eventevt)/根據(jù)Event類中參數(shù)evt的id值來(lái)判斷發(fā)生事件的種類if(evt.id=Event.WINDOW_DESTROY)System.exit(0);/return的返回值表示將余下的事件處理交給handleEvent()的父/類處理,
7、從而保證對(duì)事件的正常處理returnsuper.handleEvent(evt);publicstaticvoidmain(Stringargs)Framef=new Empty();f.setSize(300,200);f.setVisible(true);125 5繪制用戶自定義成分4用戶自定義成分屬于構(gòu)成GUI的非標(biāo)準(zhǔn)局部4無(wú)法響應(yīng)用戶事件4一般僅僅起背景裝飾、輸出效果突出的作用4Java中的用戶自定義成分4顯示文字4繪制圖形4顯示圖片135 5繪制用戶自定義成分4一般在容器中(窗口)或畫布上繪制。4利用Java.awt類庫(kù)中的類及其方法繪制用戶自定義的圖形界面成分。4Graphics類
8、包含很多繪制圖形和文字的方法。4首先要獲得Graphics類的實(shí)例,然后利用其方法繪制。4Graphics類的實(shí)例一般作為相關(guān)方法的參數(shù)傳遞進(jìn)來(lái):paint(Graphicsg)4Java程序圖形界面的坐標(biāo)設(shè)置原點(diǎn)(0,0)X軸Y軸145 5繪制圖形及其相關(guān)方法4drawLine(x1,y1,x2,y2)/直線4drawRect(x,y,w,h)/矩形4drawOval(x,y,w,h)/圓或橢圓4fillOval(x,y,w,h)/實(shí)心圓或橢圓4drawPolygon(X坐標(biāo)數(shù)組,Y坐標(biāo)數(shù)組,頂點(diǎn)個(gè)數(shù))/畫多邊形4drawArc(x,y,w,h,開始角度,弧度角度)4setColor(Col
9、orc)/設(shè)置顏色4setFont(Fontf)/設(shè)置字體4getColor()4getFont()155 5繪制圖形及其相關(guān)方法4從(x1,y1)到(x2,y2)畫直線drawLine(x1,y1,x2,y2)參數(shù)均為int4畫弧線drawArc(x,y,w,h,)參數(shù)均為intx,y為繪制弧形的左上角的坐標(biāo);w,h為弧形的寬度和高度;為弧形的起始角,為弧形的弧度,為正,表順時(shí)針方向;為負(fù),表逆時(shí)針方向。4以(x,y)為左上角、w為寬度、h為高度畫矩形drawRect(x,y,w,h)參數(shù)均為int4fillRect(x,y,w,h)、clearRect(x,y,w,h)165 5繪制圖形及
10、其相關(guān)方法4畫圓或橢圓drawOval(x,y,w,h)x,y為繪制圓或橢圓的左上角的坐標(biāo),w,h確定了橢圓的寬度和高度4畫實(shí)心圓或橢圓fillOval(x,y,w,h)4畫多邊形drawPolygon(X坐標(biāo)數(shù)組,Y坐標(biāo)數(shù)組,頂點(diǎn)個(gè)數(shù))P.185175 5繪制圖形及其相關(guān)方法例子:sanmao.java185 5/畫頭部,橢圓方法drawOvalg.setColor(Color.black);/setColor用來(lái)設(shè)置要使用的顏色g.drawOval(40,40,120,150);./畫頭發(fā),直線方法drawLine,畫弧方法drawArcg.drawLine(100,10,100,60);
11、g.drawArc(110,20,100,80,90,90);./畫嘴巴,填充畫弧方法fillArcg.fillArc(60,130,80,40,180,180);./畫耳朵,填充橢圓方法fillOval,復(fù)制圖形方法copyAreag.fillOval(25,92,15,30);g.copyArea(25,92,15,30,136,0);/拷貝某區(qū)域的圖形至另一區(qū)域./畫身體,多邊形方法fillPolygong.fillPolygon(polygon_x,polygon_y,polygon_pt_num);195 5顯示文字4字體顯示效果類:Font4一個(gè)Font類的對(duì)象表示了一種字體顯示效
12、果,包括字體類型、風(fēng)格和字號(hào)。4Fontmf=newFont(String字體,int風(fēng)格,int字號(hào));4字體:TimesRoman,Courier,Arial等4風(fēng)格:三個(gè)常量4Font.PLAIN,Font.BOLD,Font.ITALIC4字號(hào):字的大小磅數(shù)4設(shè)置當(dāng)前使用的字體:setFont(Fontfn)4獲取當(dāng)前使用的字體:getFont()4例:UseFonts.java205 5StringFontName=TimesRoman,Courier,Arial;intFontStyle=Font.PLAIN,Font.BOLD,Font.ITALIC;StringStyleNam
13、e=PLAIN,BOLD,ITALIC;publicvoidpaint(Graphicsg)for(inti=0;i3;i+)for(intj=0;j1)/雙擊時(shí)去除向量中各點(diǎn)m_vLocs.removeAllElements();else/單擊時(shí)在向量中增加一點(diǎn)m_vLocs.addElement(e.getPoint();repaint();/重新繪制一次classmoveextendsMouseMotionAdapter/鼠標(biāo)移動(dòng)監(jiān)聽者類publicvoidmouseMoved(MouseEvente)/響應(yīng)移動(dòng)m_CursorLoc=newPoint(e.getX(),e.getY()
14、;repaint();/重新繪制一次695 5事件類4ActionEvent類:屬于動(dòng)作事件,包括:點(diǎn)擊按鈕;雙擊一個(gè)列表中的選項(xiàng);選擇菜單項(xiàng);在文本框中按回車。最典型的例子是:鼠標(biāo)點(diǎn)擊按鈕所產(chǎn)生的事件,經(jīng)ActionListener接口觸發(fā)一連串動(dòng)作,再由actionPerformed()方法完成這些動(dòng)作。e.getSource()返回事件發(fā)生的對(duì)象(名)e.getActionCommand()返回按扭名(動(dòng)作事件的命令字符串)。4ActionListener接口publicvoidactionPerformed(ActionEvente)705 5圖形用戶界面例importjava.awt
15、.*;import.*;publicclassapublicstaticvoidmain(Stringargs)MyFrameform1=newMyFrame();classMyFrameextendsFrameMyFrame()super(窗口標(biāo)題);setSize(200,100);setFont(newFont(TimesRoman,Font.BOLD,20);715 5圖形用戶界面例setLayout(newFlowLayout();Buttonb=newButton(close);add(b);b.addActionListener(newBprocess();setVisible(
16、true);classBprocessimplementsActionListenerpublicvoidactionPerformed(ActionEvente)System.exit(0);725 5監(jiān)聽者類4某個(gè)類可以兼職也可以專職做這件事實(shí)現(xiàn)監(jiān)聽者接口。4一個(gè)類假設(shè)實(shí)現(xiàn)一個(gè)接口,必須實(shí)現(xiàn)接口的全部方法。4例如:ActionListener接口只有一個(gè)方法:4voidactionPerformed(ActionEvente)4實(shí)現(xiàn)接口的類可以是:4一般類4內(nèi)部類4匿名類735 5事件處理有關(guān)問題4有哪些事件類()?4每個(gè)事件類的監(jiān)聽者接口?4每個(gè)監(jiān)聽者接口規(guī)定的方法?4多方法的監(jiān)聽者接口
17、的適配器實(shí)現(xiàn)接口的抽象類是什么?4組件的事件委托注冊(cè)方法?745 5窗口事件4關(guān)閉窗口框時(shí)引發(fā)WindowEvent事件4委托addWindowListener(newWclose();4定義監(jiān)聽者類classWcloseimplementsWindowListenerpublicvoidwindowClosing(WindowEvente)System.exit(0);4WindowListener類有7個(gè)方法,必須都實(shí)現(xiàn)4WindowAdapter接收窗口事件的抽象適配器類,用空內(nèi)容實(shí)現(xiàn)了WindowListener接口的所有方法4classWcloseextendsWindowAdapt
18、er755 5ActionEvent動(dòng)作事件4引發(fā)原因:4單擊按扭,雙擊列表框中選項(xiàng),選擇菜單項(xiàng),文本框中的回車4事件監(jiān)聽接口:ActionListener4接口方法:4actionPerformed(ActionEvente)4組件注冊(cè)該事件方法:4addActionListener(監(jiān)聽者765 5TextEvent文本領(lǐng)件4引發(fā)原因:4文本框或文本區(qū)域內(nèi)容改變4事件監(jiān)聽接口:TextListener4接口方法:4textValueChanged(TextEvente)4組件注冊(cè)該事件方法:4addTextListener(監(jiān)聽者775 5ItemEvent選擇事件4引發(fā)原因:4改變列表框
19、中的選中項(xiàng)4改變復(fù)選框選中狀態(tài)4改變下拉選單的選中項(xiàng)4事件監(jiān)聽接口:ItemListener4接口方法:4itemStateChanged(ItemEvente)4組件注冊(cè)該事件方法:4addItemListener(監(jiān)聽者785 5AdjustmentEvent調(diào)整事件4引發(fā)原因:4操作滾動(dòng)條改變滑塊位置4事件監(jiān)聽接口:AdjustmentListener4接口方法:4adjustmentValueChanged(AdjustmentEvente)4組件注冊(cè)該事件方法:4addAdjustmentListener(監(jiān)聽者795 5KeyEvent事件4引發(fā)原因:4敲完鍵KEY-TYPED)4
20、按下鍵(KEY-PRESSED)4釋放鍵(KEY-RELEASE)4事件監(jiān)聽接口:KeyListener4接口方法:4keyPressed(KeyEvente)鍵已被按下時(shí)調(diào)用4keyReleased(KeyEvente)鍵已被釋放時(shí)調(diào)用4keyTyped(KeyEvente)鍵已被敲完時(shí)調(diào)用4KeyEvent方法:charch=e.getKeyChar();4事件監(jiān)聽適配器抽象類KeyAdapter4組件注冊(cè)該事件方法:4addKeyListener(監(jiān)聽者805 5MouseEvent事件4引發(fā)原因:(鼠標(biāo)作用在一個(gè)組件上)鼠標(biāo)事件:鼠標(biāo)鍵按下,鼠標(biāo)鍵抬起,單擊鼠標(biāo),鼠標(biāo)光標(biāo)進(jìn)入一個(gè)組件,
21、鼠標(biāo)光標(biāo)離開一個(gè)組件。鼠標(biāo)移動(dòng)事件:鼠標(biāo)移動(dòng),鼠標(biāo)拖動(dòng)4鼠標(biāo)事件監(jiān)聽接口1:MouseListener接受鼠標(biāo)事件4該接口方法:mouseClicked(MouseEvente)mouseEntered(MouseEvente)鼠標(biāo)光標(biāo)進(jìn)入一個(gè)組件mouseExited(MouseEvente)鼠標(biāo)光標(biāo)離開一個(gè)組件815 5MouseEvent事件續(xù)4鼠標(biāo)事件監(jiān)聽適配器抽象類MouseAdapter4鼠標(biāo)事件監(jiān)聽接口2:4MouseMotionListener接受鼠標(biāo)移動(dòng)事件4該接口方法:4mouseMoved(MouseEvente)鼠標(biāo)光標(biāo)在組件上移動(dòng)4mouseDragged(Mouse
22、Evente)用鼠標(biāo)拖動(dòng)一個(gè)組件4鼠標(biāo)移動(dòng)事件監(jiān)聽適配器MouseMotionAdapter4組件注冊(cè)鼠標(biāo)事件方法:4addMouseListener(監(jiān)聽者4組件注冊(cè)鼠標(biāo)移動(dòng)事件方法:4addMouseMotionListener(監(jiān)聽者825 5MouseEvent事件續(xù)4MouseEvent方法e.getClickCount()=1單擊=2雙擊Pointe.getPoint()取鼠標(biāo)光標(biāo)位置inte.getX()inte.getY()取鼠標(biāo)光標(biāo)位置e.getModifiers()=e.BUTTON1_MASK鼠標(biāo)左鍵=e.BUTTON3_MASK鼠標(biāo)右鍵835 5WindowEvent事
23、件4引發(fā)原因:有關(guān)窗口操作引發(fā)的事件4事件監(jiān)聽接口WindowListener4接口方法windowActivated(WindowEvente)激活窗口windowClosed(WindowEvente)調(diào)用dispose方法關(guān)閉窗口后windowClosing(WindowEvente)窗口正在被關(guān)閉(試圖利用窗口關(guān)閉按鈕關(guān)閉窗口)windowDeactivated(WindowEvente)本窗口成為非活動(dòng)窗口845 5WindowEvent事件(續(xù)windowDeiconified(WindowEvente)窗口從最小化恢復(fù)為普通窗口windowIconified(WindowEven
24、te)窗口變?yōu)樽钚』瘓D標(biāo)windowOpened(WindowEvente)窗口被翻開成為可見時(shí)接口適配器WindowAdapter注冊(cè)事件方法addWindowListener855 5FocusEvent事件4引發(fā)原因:組件獲得焦點(diǎn)組件失去焦點(diǎn)4事件監(jiān)聽接口FocusListener4接口方法:focusGained(FocusEvente)組件獲得焦點(diǎn)時(shí)調(diào)用focusLost(FocusEvente)組件失去焦點(diǎn)時(shí)調(diào)用4接口適配器:FocusAdapter4組件注冊(cè)該事件方法:addFocusListener865 5TextEvent事件4引發(fā)原因:4當(dāng)組件如文本框文本改變時(shí)引發(fā)4事件
25、監(jiān)聽接口:TextListener4接口方法:4textValueChanged(TextEvente)4組件注冊(cè)該事件方法:4addTextListener875 5ComponentEvent事件4引發(fā)原因:當(dāng)組件移動(dòng)、改變大小、改變可見性時(shí)引發(fā)4事件監(jiān)聽接口:ComponentListener4接口方法:componentHidden(ComponentEvente)組件隱藏componentMoved(ComponentEvente)組件移動(dòng)componentResized(ComponentEvente)組件改變大小componentShown(ComponentEvente)組件變
26、為可見4接口適配器ComponentAdapter4組件注冊(cè)該事件方法:addComponentListener885 5ContainerEvent事件4引發(fā)原因:4當(dāng)容器內(nèi)增加或移走組件時(shí)引發(fā)4事件監(jiān)聽接口:ContainerListener4接口方法4componentAdded(ContainerEvente)容器內(nèi)參加組件4componentRemoved(ContainerEvente)沉著器中移走4組件4接口適配器ContainerAdapter4容器注冊(cè)該事件方法:4addContainerListener895 5GUI標(biāo)準(zhǔn)組件4Label(標(biāo)簽)4構(gòu)造方法4Labelmyl
27、=newLabel(“標(biāo)簽內(nèi)容);4Labela=newLabel(“information);4Labela=newLabel(“information,Label.CENTER);4方法4a.setText(“新內(nèi)容);設(shè)置標(biāo)簽內(nèi)容4Stringa.getText()讀取標(biāo)簽內(nèi)容4Button(按鈕)4ButtonmyB1=newButton();4ButtonmyB2=newButton(“Cancel);905 5GUI標(biāo)準(zhǔn)組件4Checkbox(檢測(cè)盒)4創(chuàng)立時(shí)指定檢測(cè)盒的標(biāo)簽4Checkboxcb1=newCheckbox();4Checkboxcb2=newCheckbox(“r
28、egistered);4Checkboxcb3=newCheckbox(“registered,true);4Checkboxcb4=newCheckbox(“registered,true,group);4獲取和設(shè)置檢測(cè)盒的狀態(tài)4cb.setState(true);4booleanb=cb.getState();915 5Checkbox組件4構(gòu)造方法Checkbox(Stringlabel)Checkbox(Stringlabel,booleanstate)Checkbox(Stringlabel,booleanstate,CheckboxGroupgroup)4方法:booleanget
29、State()setState(booleanstate)925 5GUI標(biāo)準(zhǔn)組件4CheckboxGroup(單項(xiàng)選擇按鈕組)4單項(xiàng)選擇按鈕組是一組Checkbox的集合,是將一組4Checkbox按扭組成單項(xiàng)選擇按扭組件4首先創(chuàng)立CheckboxGroup,再參加單個(gè)按鈕4方法:4CheckboxgetSelectedCheckbox()4取得目前選取的復(fù)選框?qū)ο?setSelectedCheckbox(Checkboxbox)4設(shè)定目前選取的復(fù)選框?qū)ο?35 5CheckboxGroup組件4例:setLayout(newGridLayout(3,1);4CheckboxGroupcbg
30、=newCheckboxGroup();4Checkboxck1=newCheckbox(“one,true,cbg);4Checkboxck2=newCheckbox(“two,false,cbg);4Checkboxck3=newCheckbox(“three,false,cbg);4add(ck1);4add(ck2);4add(ck3);4把CheckboxGroup參加容器時(shí)需要把其中的每個(gè)復(fù)選按鈕逐個(gè)參加到容器中,而不能使用CheckboxGroup對(duì)象一次性地參加。945 5TextField行編輯框組件4構(gòu)造方法(String,int)4TextFieldf1=newTextF
31、ield(30);4TextFieldf1=newTextField(“abc,30);4建30個(gè)字符寬的行編輯框4方法:4StringgetText()讀文本框內(nèi)容4setText(“abc)設(shè)置編輯框內(nèi)容4setEchoChar(charc)設(shè)置回顯字符4TextComponent方法:4setEditable(false);4selectAll()955 5TextArea組件4構(gòu)造方法(String,int,int)4TextAreat1=newTestArea(10,45);4建10行、45列的文本區(qū)域4TextAreat1=newTestArea(“abc,10,45);4Text
32、Areat1=newTestArea(“abc,10,45,滾動(dòng)條);4滾動(dòng)條指定4SCROLLBARS_BOTH4SCROLLBARS_HORIZONTAL_ONLY4SCROLLBARS_VERTICAL_ONLY4SCROLLBARS_NONE4方法4append(Stringstr)追加文本965 5List列表框4首先創(chuàng)立List對(duì)象,再調(diào)用add()方法參加List列表的各選項(xiàng)。列表可以實(shí)現(xiàn)多項(xiàng)選擇多4構(gòu)造方法4List(introws,booleanmultipleMode)4rows顯示行數(shù);multipleMode是否允許多項(xiàng)選擇4方法:4list1.add(“classA)
33、;4list1.add(“classB);4list1.add(“classC,0);指定參加選項(xiàng)位置975 5List列表框4方法4intgetSelectedIndex()取被選項(xiàng)索引4intgetSelectedIndexes()取被選項(xiàng)索引多項(xiàng)選擇4StringgetSelectedItem()取被選項(xiàng)4StringgetSelectedItems()取被選項(xiàng)多項(xiàng)選擇4voidselect(intindex)選中指定的項(xiàng)4StringgetItem(intindex)按索引號(hào)取出該項(xiàng)4intgetItemCount()取出項(xiàng)數(shù)4StringgetItems()取出所有的項(xiàng)4P.2119
34、85 5Choice下拉選單4下拉選單提供了多項(xiàng)選擇一機(jī)制,創(chuàng)立下拉選單包括創(chuàng)立下拉選單對(duì)象和添加選項(xiàng)兩個(gè)步驟4例:4ChoiceColorChooser=newChoice();ColorChooser.add(Green);4ColorChooser.add(Red);4ColorChooser.add(Blue);4StringgetSelectedItem()Green995 5Scrollbar滾動(dòng)條4構(gòu)造方法4mySlider=newScrollbar(Scrollbar.HORIZONTAL,40,1,0,Integer.MAX_VALUE);4滾動(dòng)條方向4滑塊初始位置4滑塊尺寸
35、4滾動(dòng)槽最小值4滾動(dòng)槽最大值4方法4intgetValue()返回滑塊當(dāng)前位置4setUnitIncrement(1);設(shè)置單位增量點(diǎn)按兩端箭頭4setBlockIncrement(50);設(shè)置塊增量點(diǎn)按滾動(dòng)槽1005 5菜單4菜單須依附于一個(gè)實(shí)現(xiàn)了MenuContainer接口4的對(duì)象:Frame4構(gòu)建菜單結(jié)構(gòu):創(chuàng)立菜單的步驟4創(chuàng)立菜單條MenuBar4創(chuàng)立菜單Menu,參加相應(yīng)菜單條4創(chuàng)立菜單項(xiàng)MenuItem,參加相應(yīng)菜單4使菜單條依附于擁有它的對(duì)象:setMenuBar()4編寫響應(yīng)菜單操作的代碼(ActionEvent)1015 5菜單4創(chuàng)立菜單條MenuBar)4MenuBarm_
36、MenuBar=newMenuBar();4創(chuàng)立菜單Menu,參加菜單條4MenumenuFile=newMenu(“File);/創(chuàng)立菜單4m_MenuBar.add(menuFile);/將菜單參加菜單條4創(chuàng)立菜單項(xiàng)MenuItem),并參加相應(yīng)菜單4MenuItemf1=newMenuItem(“Open),/創(chuàng)立各菜單項(xiàng)4MenuItemf2=newMenuItem(Close),4menuFile.add(f1);/參加菜單4menuFile.add(f2);4將菜單條放入frame:4myFrame.setMenuBar(m_MenuBar);4編寫響應(yīng)菜單操作的代碼(Action
37、Event)1025 5例:MenuFrame.javaclassMenuFrameextendsFrameLabellb=newLabel(“herecomescommand);/模擬菜單命令MenuBarm_MenuBar=newMenuBar();/創(chuàng)立菜單條MenumenuFile=newMenu(“File);/創(chuàng)立菜單MenuItemfile=newMenuItem(“Open),/創(chuàng)立各菜單項(xiàng)newMenuItem(Close),newMenuItem(Exit);MenuFrame()m_MenuBar.add(menuFile);/把菜單參加菜單條menuFile.add(f
38、ile0);/把各菜單項(xiàng)參加菜單menuFile.add(file1);menuFile.add(file2);setMenuBar(m_MenuBar);/把菜單條參加Frame1035 5setLayout(newFlowLayout();add(lb);/參加Label,用于輸出菜單項(xiàng)命令A(yù)ctionListenerml=newML();for(inti=0;i3;i+)/為每個(gè)菜單項(xiàng)注冊(cè)監(jiān)聽者filei.addActionListener(ml);/此例多個(gè)菜單項(xiàng)/對(duì)應(yīng)一個(gè)監(jiān)聽者,但實(shí)際編程時(shí)建議使用一對(duì)一結(jié)構(gòu)addWindowListener(newWL();classMLimple
39、mentsActionListener/Action事件監(jiān)聽者類publicvoidactionPerformed(ActionEvente)lb.setText(e.getActionCommand();/輸出菜單命令1045 5文件對(duì)話框FileDialog(Frameparent,Stringtitle,intmode)parent對(duì)話框所屬窗體title對(duì)話框標(biāo)題mode對(duì)話框模式FileDialog.LOAD翻開文件FileDialog.SAVE保存文件1055 5文件對(duì)話框classMyFrameextendsFrameMyFramegetMyFrameIns()returnthis;子類方法代碼片段:FileDialogf=newFileDialog(getMyFrameIns(),open,FileDialog.SAVE);f.setVisible(true);Stringfname=f.getDirectory()+f.getFile();ig=getToolkit().getImage(fname);1065 5課后作業(yè)4P276.第10、11、12、13、14題107
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競(jìng)賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫(kù)試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫(kù)試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫(kù)試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測(cè)試題庫(kù)及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測(cè)工種技術(shù)比武題庫(kù)含解析
- 1 礦山應(yīng)急救援安全知識(shí)競(jìng)賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案