




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
JavaGUI程序設計(下)單擊此處編輯副標題樣式版權聲明華清遠見教育集團;未經(jīng)華清遠見明確許可,不得為任何目的以任何形式復制或傳播此文檔的任何部分;本文檔包含的信息如有更改,恕不另行通知;華清遠見教育集團保留所有權利。目錄JavaAWT事件處理機制窗口事件處理事件類型和相應的接口及其方法事件適配器處理事件的方式Awt常用組件Awt中的視覺控制Jar命令的使用事件處理事件(Event)–一個對象,它描述了發(fā)生什么事情事件源(Eventsource)–產(chǎn)生事件的組件事件處理方法(Eventhandler)–能夠接收、解析和處理事件類對象、實現(xiàn)和用戶交互的方法awt中的事件處理方式委派式事件處理(delegation)----個別的組件將整個事件處理委托給特定的對象,當該組件發(fā)生指定的事件時,就通知所委托的對象,有這個對象來處理這個事件。這個受委托處理事件的對象稱為事件監(jiān)聽對象(eventlistener)每個組件均可以針對特定的事件指定一個或多個事件監(jiān)聽對象,由這些事件監(jiān)聽對象負責處理事件awt事件分類
EventObjectActionEventAdjustmentEventAWTEventItemEventTextEventContainerEventFocusEventInputEventPaintEventWindowEventKeyEventMouseEventComponentEvent事件處理例子……b.addActionListener(newButtonListener());classButtonListenerimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ clickCount++; t.setText(“點擊‘ClickMe’按鈕:”+clickCount+“次。"); } }……一個事件多個處理器例子b1.addActionListener(newButtonListener1());b2.addActionListener(newButtonListener2());窗口事件當一個窗口被激活、撤銷激活、打開、關閉、最大化、最小化時,發(fā)生窗口事件。從WindowEvent類中創(chuàng)建的對象表示窗口事件。不同事件類型的接口和方法分類接口名方法ActionActionListeneractionPerformed(ActionEvent)ItemItemListeneritemStateChanged(ItemEvent)MouseMotionMouseMotionListenermouseDragged(MouseEvent)mouseMoved(MouseEvent)MouseMouseListenermousePressed(MouseEvent)mouseReleased(MouseEvent)mouseEntered(MouseEvent)mouseClicked(MouseEvent)mouseExited(MouseEvent)KeyKeyListenerkeyPressed(KeyEvent)keyReleased(KeyEvent)keyTyped(KeyEvent)FocusFocusListenerfocusGained(FocusEvnet)focusLost(FocusEvent)分類接口名方法AdjustmentAdjustmentListeneradjustmentValueChanged(AdjustmentEvent)ComponentComponentListenercomponentMoved(ComponentEvent)componentHidden(ComponentEvent)componentResized(ComponentEvent)componentShown(ComponentEvent)WindowWindowListenerwindowClosing(WindowEvent)windowOpened(WindowEvent)windowIconified(WindowEvent)windowDeiconified(WindowEvent)windowClosed(WindowEvent)windowActivated(WindowEvent)windowDeactivated(WindowEvent)ContainerContainerListenercomponentAdded(ContainerEvent)componentRemoved(ContainerEvent)TextTextListenertextValueChanged(TextEvent)不同事件類型的接口和方法事件適配器(Adapter)為簡化編程,針對大多數(shù)事件監(jiān)聽器接口定義了相應的實現(xiàn)類----事件適配器類,在適配器類中,實現(xiàn)了相應監(jiān)聽器接口中所有的方法,但不做任何事情。在定義監(jiān)聽器類時就可以繼承事件適配器類,并只重寫所需要的方法。事件處理類和產(chǎn)生事件的類的關系(1)利用內(nèi)部類來處理事件:…Buttonb=newButton(“確定”);b.addActionListener(newAddListener());classAddListenerimplementsActionListener{ publicvoidactionPerformed(ActionEvente) {……}}…事件處理類和產(chǎn)生事件的類的關系(2)用匿名類處理事件:…this.addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ System.exit(0); } } );……事件處理類和產(chǎn)生事件的類的關系(con.)通過其他類處理事件:publicclassEventHandler
implementsActionListener{ …}publicclassTestEvent{ … Buttonb=newButton(“Test”); b.addActionListener(newEventHandler()); …}事件處理類和產(chǎn)生事件的類的關系(3)直接在本類里處理事件:publicclassTestimplementsActionListener{ … Buttonb=newButton(“Cancel”); b.addActionListener(this); publicvoidactionPerformed(ActionEvente){ … } …}awt常用組件(1)Button 可接收點擊操作的矩形GUI組件Canvas 用于繪圖的面板Checkbox 復選框組件CheckboxMenuItem 復選框菜單項組件Choice 下拉式列表框,內(nèi)容不可改變Component 組件類Container 容器類awt常用組件(2)Dialog 對話框組件,頂級窗口、帶標題欄Frame 基本的JavaGUI窗口組件Label 標簽類List 包含內(nèi)容可變的條目的列表框組件Menu 菜單組件MenuItem 菜單項(二級菜單)組件Panel 基本容器類,不能單獨存在awt常用組件(3)Scrollbar 滾動條組件ScrollPane 帶水平及垂直滾動條的容器組件TextArea 多行文本域TextField 單行文本框Window 抽象的GUI窗口類,無布局管理器Button(按鈕)的創(chuàng)建構造器:Button()Button(Stringlabel)TextField(文本框)創(chuàng)建構造器:TextField()TextField(StringDefaultText)TextField(intcolumns)TextField(StringDefaultText,intcolumns)TextField例子…… Framef=newFrame("MyTextField"); TextFieldt1=newTextField("MyTextField",20); TextFieldt2=newTextField("",20); f.setLayout(newBorderLayout()); f.add(t1,BorderLayout.NORTH); f.add(t2,BorderLayout.SOUTH);……TextArea例子importjava.awt.*;publicclassMyTextArea{ Framef=newFrame("MyTextArea"); TextAreat1=newTextArea("MyTextArea",4,20); publicMyTextArea() { f.setLayout(newBorderLayout()); f.add(t1,BorderLayout.NORTH); f.pack(); f.show(); } publicstaticvoidmain(Stringargs[]){ MyTextAreatf=newMyTextArea(); }}Dialog例子f=newFrame("MyDialogshow");f.setBackground(Color.black);f.setSize(100,200);d=newDialog(f,"MyDialog",true);……f.setVisible(true);d.setVisible(true);PopupMenu例子(1) p=newPopupMenu(); p.add(mi1=newMenuItem("ViewSource")); //addActionListenerforeachMenuItem mi1.addActionListener(newmiActionListener()); p.addSeparator(); p.add(mi2=newMenuItem("Print")); mi2.addActionListener(newmiActionListener()); p.add(mi3=newMenuItem("Refresh")); mi3.addActionListener(newmiActionListener()); p.addSeparator(); p.add(mi4=newMenuItem("Properties")); mi4.addActionListener(newmiActionListener()); //addthePopupMenutotheFrame add(p); //Enablethemouseevent enableEvents(AWTEvent.MOUSE_EVENT_MASK);PopupMenu例子(2)ScrollPane默認情況下,F(xiàn)rame、Panel等容器是沒有滾動條的,即使這些容器中放置的其他組件已經(jīng)無法完全顯示。可以通過ScrollPane來實現(xiàn)滾動條功能:將原來放到Frame、Panel等容器中的組件改而放到ScrollPane中,然后將ScrollPane放到Frame、Panel等容器中。ScrollPane例子…… f=newFrame(); p=newPanel(); p.setLayout(newGridLayout(3,5,3,3)); sp=newScrollPane(); for(inti=0;i<name.length;i++){ b[i]=newButton(name[i]); p.add(b[i]); } sp.add(p); f.add(sp);……創(chuàng)建菜單創(chuàng)建一個菜單步驟:創(chuàng)建一個MenuBar對象,將其放置到菜單容器中(如Frame)創(chuàng)建若干個Menu對象,將其放置到MenuBar對象中創(chuàng)建若干個MenuItem對象,將其放置到Menu對象中MenuItem包括:MenuItem:普通的菜單項CheckboxMenuItem:可以選擇的菜單項創(chuàng)建菜單例子f=newFrame("Menu");mb=newMenuBar();m1=newMenu("File");m2=newMenu("Edit");m3=newMenu("Help");mb.add(m1);mb.add(m2);mb.setHelpMenu(m3);f.setMenuBar(mb);mi1=newMenuItem("New");……m1.add(mi1);m1.add(mi2);……awt中的視覺控制(1)顏色類Color和字體類Font:Color類Color類將顏色按照sRGB標準格式進行封裝,該格式中紅、綠、藍三原色的取值范圍都是0~255。Color類定義了多個構造方法,常用的有:publicColor(intr,intg,intb)publicColor(intr,intg,intb,inta)//a--透明度參數(shù)Colorc=newColor(200,170,90);Colord=newColor(200,170,90,120);在GUI設計中使用Color類Buttonb=newButton(“Test”);Colorc=newColor(200,170,90);b.setBackground(c)awt中的視覺控制(2)Font類Fontf=newFont(“TimesRoman”,Fo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 北京小工裝合同范本
- 凈水漁業(yè)合同范本
- 專柜撤柜合同范本
- 冷庫軌道轉讓合同范本
- 借購合同范例范例
- 出租給超市合同范本
- 鮮花店采購合同范本
- 品牌授權合作合同范本
- 租賃奢華汽車合同范本
- 合伙開模合同范本
- 生物節(jié)律調節(jié)課件
- 2025年黑龍江民族職業(yè)學院單招職業(yè)技能測試題庫匯編
- 感恩父母課件:父母的愛如山如水
- 不分手承諾書(2025版)戀愛忠誠協(xié)議
- 2020-2025年中國國有控股公司行業(yè)發(fā)展趨勢及投資前景預測報告
- 病區(qū)8S管理成果匯報
- 民法典題庫(附答案)
- 綏芬河市2025年上半年招考事業(yè)單位專業(yè)人員易考易錯模擬試題(共500題)試卷后附參考答案
- 小學數(shù)學新課程標準(教育部2024年制訂)
- 2025復工復產(chǎn)安全教育培訓
- 2024年叉車司機車輛基本操作知識考試題庫及答案(共70題)
評論
0/150
提交評論