JAVA图形用户界面设计与事件处理

上传人:cl****1 文档编号:569973933 上传时间:2024-08-01 格式:PPT 页数:74 大小:441KB
返回 下载 相关 举报
JAVA图形用户界面设计与事件处理_第1页
第1页 / 共74页
JAVA图形用户界面设计与事件处理_第2页
第2页 / 共74页
JAVA图形用户界面设计与事件处理_第3页
第3页 / 共74页
JAVA图形用户界面设计与事件处理_第4页
第4页 / 共74页
JAVA图形用户界面设计与事件处理_第5页
第5页 / 共74页
点击查看更多>>
资源描述

《JAVA图形用户界面设计与事件处理》由会员分享,可在线阅读,更多相关《JAVA图形用户界面设计与事件处理(74页珍藏版)》请在金锄头文库上搜索。

1、-第十一讲第十一讲图形用户界面设计与事件处理图形用户界面设计与事件处理0本讲主要内容Java的GUI简介容器GUI的布局方式Java的标准控件AWT事件处理机制1图形用户界面的构成v容器:布局v标准组件、事件处理v用户自定义成分2AWT包GUI的组成用户自定义成分GUI标准控件、事件处理AbstractWindowsToolkit提供各种构成GUI的标准控件抽象:抽取不同软硬件平台中所实现的窗口的公共特性,针对一个只具有上述公共特性的虚窗口操作依赖于具体平台系统实现:显示效果可能不同3Java.awt的体系结构:borderlayoutcardlayoutCheckboxGroupColorD

2、imensionEventFontFlowlayoutFontMericsJava.lang.objectGraphicsGridBagLayoutGridLayoutimage.MenuComponentcomponent4CompoentsButtonConvasContainerchoiceCheckboxTextComponentLabelSCrollbarlistPanelScrollPaneWindowTextAreaTextfieldAppletFrameDialogfileDialog容器组件5AWT1、图形用户界面2、布局管理器3、事件处理略4、组件的定位(布局设计中的绝对定

3、位)1、组件:ButtonLabelCheckboxCheckboxgroupChoice.2、容器PanelAppletWindowDialog.FiledialogFrameFlowLayoutPanel默认BorderLayoutWindowFrame默认)GridLayoutCardLayoutGridBagLayout6一、组件的定位布局设计中的绝对定位特点:1、设置了布局管理器后,组件的定位失效2、组件的定位与平台有关3、要使组件的定位有效,可使用setLayout(null),使布局管理器失效组件定位的方法有:1setLocation(intx,inty)/设定坐标位置setSi

4、ze(intwidth,intheight)/设定组件宽和高setBounds(intx,inty,intw,inth)/设定组件的大小和位置7二、容器1、窗口Window类特点:1、窗口没有标题栏和改变窗口大小的按钮,在实际的应用中经常使用的是它的两个子类(Frame和Dialog是带标题和按钮的顶层窗口),2、不能作为最外层的容器e.g:MainWindows,AppletWindows,MainWindows182、框架Frame类e.g:MainWindows1-特点:1、是不可见的,无大小尺寸2、Application程序用它3、有窗体,默认布局为BorderLayout()-声明:

5、格式:Framef=newFrame(“界面;Framef=newFrame();-方法:1)setSize(intw,inth)2)setVisible(true/false)或show()3)setTitle(Strintstr)9Toolkittk=Toolkit.getDefaultToolkit();Imageimg=tk.getImage(icon.gif);f.setIconImage(img);10-事件1、JFrame类可以引发WindowEvent类代表的所有七种窗口事件2、每个JFrame在其右上角都有三个控制图标,分别代表最小化、最大化和关闭窗口的操作。其中,Frame

6、可自动完成窗口的最小化和最大化操作,而关闭窗口的操作不能通过点击关闭图标来实现,但可以使用下述三个方法之一来关闭窗口:1设置一个按钮,当用户点击此按钮时关闭窗口;2用WINDOWS_CLOSING事件做出响应,关闭窗口;3使用菜单命令。无论使用哪一种方法,都需要用到关闭JFrame的System.exit(0)方法。113、面板Panel类-特点:1、可包含其他的构件或另外的面板2、缺省布局是FlowLayout3、其要加载到其它容器中,如Frame或Applet浏览器中4、无边框、不能被移动、放大、缩小或关闭的容器-声明:格式:Panelp=newPanel();-方法:1)setSize(

7、width,Height)2)setBackground(Color.red)3)f.add(p)e.g:MainPanel,AppletPanel1244、Dialog(对话框)4(1)特点:1、显示提示信息和接受用户输入42、要有一个父窗口,父窗口关闭时,它其中的对话4框也关闭43、是Window的子类,是可移动窗口44、缺省布局是BorderLayout45、对话框是不可见,要用setVisible(true)变为可见4可用setVisible(false)隐藏对话框4(2)创立对象4Dialogd=newDialog(f,dialog,true);13(3)常用构造方法Dialog(F

8、ramewin,booleanb)构造一个非可视的对话框,通过show()变为可视,b为true时,对话框为可视,其它构件不能接收用户的输入,此为模式状态Dialog(Framewin,Stringstr,booleanb)构造一个非可视的对话框,String类型为对话框的标题(4)事件:WindowEvent14(5)常用方法show()setMode(booleanModel)dispose()-关闭窗体getTitle()setTitle()getModel(booleanModel)e.g:DialogExample1545、FileDialog(文件对话框)4(1)特点:1、对文件进

9、行选择存取的组件,42、是可移动窗口43、是Dialog的子类44、是非可视的,要用show()或setVisible(true)变为可视4(2)创立对象4FileDialogfd=newFileDialog(f,dialog,save);4文件对话框分为二种类型:41、装入或翻开文件。42、保存文件416(3)构造方法FileDialog(Frameparent);构造一个不带标题的装入文件对话框FileDialog(Frameparent,Stringtitler)FileDialgon(Frameparent,Stringstitle,intmode)mode为SAVE或mode为LOA

10、D174)常用方法getFile()/返回文件名getDirectory()/返回文件对话框中的路径setDirectory()SetFilenameFilter()/设置当前文件过滤器setFile()/设置默认文件名(5)事件-ActionEvent(6)类型:load用于装入文件Save-用于保存文件181、EventObject类getSource()-返回产生事件的事件源同老版target()2、AWTEvent类getID()-返回事件的种类e.gFileDialogExample19二、布局管理器每个容器都有对应的布局方式。没有设置时,为缺省的布局方式。由布局管理器来管理每个容器

11、的布局。布局管理器提供了接口LayoutManager。设置布局的方法setLayout(LayoutManager);Container类中的方法validate()去更新容器中的布局。在一个容器中,一次只允许使用一种布局管理器。201、FlowLayout(Panel默认1声明: 格式: FlowLayout fl=new FlowLayout ( );2) 构造方法 - FlowLayout/默认为居中 - FlowLayoutint align/默认间距为4个单元 - FlowLayoutint align, int n1,int n2Align为FlowLayout.LEFT, Fl

12、owLayout.RIGHT FlowLayout.CENTER间矩n1,n2分别指定各组件间的横向和纵向间的3)加组件 f.add(对象名组件按参加的先后排4设置布局 f.setLayout(fl)e.g:ExGui MainFlowLayout,AppletFlowLayout212、BorderLayout(Frame默认1声明:格式:BorderLayoutbl=newBorderLayout();按East,South,West,North,Center放2构造方法-BorderLayout()/各组件间的横纵向距都为0-BorderLayout(inthorizontal-gap,

13、intvertical-gap)3)加组件f.add(b,South)或f.add(South,b)f.add(b,BorderLayout.SOUTH)225)布局的设置-f.setLayout(bl);e.g:ExGui1MainBorldLayoutAppletBorldLayoute.g:AppletBorderLayoutEvent233、GridLayout1声明:格式:GridLayoutgl=newGridLayout();2构造方法-GridLayout()-GridLayout(introw,intcols)-GridLayout(introw,intcols,inthga

14、p,intvgap)3)加组件f.add(b)4)布局的设置-f.setLayout(fl);e.g:ExGui3MainGridLayoutAppletGridLayout244、CardLayout1声明:格式:CardLayoutcl=newCardLayout();2构造方法-CardLayout()3)方法-first()-next()-每次只能显示一个卡片-prvious()-last()-4)加组件格式:add(字符串,组件),通过字符串名调用显示组件f.add(p1,first)f.add(p2,second)5)布局的设置-f.setLayout(cl);e.g:ExGui5

15、MainCardLayout/AppletCardLayoutEvent254、GridBagLayoutGridBagConstraints容器中的各个控件按网格状整齐排列,每个控件可以占一个或多个格。除了生成GridBagLayout对象外,还需生成GridBagConstraints对象来设置每个控件的约束条件。使用以下几个实例变量:gridx,gridy控件左端、上端的位置。gridwidth,gridheight控件所占的行列数。fill控件填满整个显示区。ipadx,ipady比例关系。insets控件与边缘的距离。anchor控件位置。weightx,weighty分配额外的空间

16、e.g:GridBagEx126三、事件处理1、接口2、注册监听器3、接口方法对事件进行处理4、适配器书上27一根本概念:1、事件:在java和其它面向对象的程序设计中,通常把用户每次通过鼠标或键盘的输入称为一个事件event)2、事件源:图形用户界面的每个可能发生事件的组件称为事件源。程序对事件的反响是通过执行一段被称作事件方法的代码来实现的,而编写这段代码那么是由程序设计者来完成的。在其他的面向对象的程序设计语言如VB中,在能够成为事件源的对象中,系统预置了所有可能发生事件及其方法的名称,编程时只要在系统提供的方法中添加需要的代码即可。在这样的程序设计语言中,事件方法是作为对象的一个成员方

17、法出现的。在java语言中,事件源对事件的监听与处理不是由其本身的成员方法来实现,而是委托一个另外的对象来完成,这个另外的对象称作事件监听者Listener)。当一个事件发生时,由系统将事件发生的消息传送给事件监听者,通过执行监听者的事件方法作出反响。28二委托事件模型二委托事件模型 Java Java采用委托事件模型来处理事件。委托事件模型的特点采用委托事件模型来处理事件。委托事件模型的特点是将事件的处理委托给独立的对象,而不是组件本身,从而将是将事件的处理委托给独立的对象,而不是组件本身,从而将使用者界面与程序逻辑分开。整个使用者界面与程序逻辑分开。整个“委托事件模型由产生事委托事件模型由

18、产生事件的对象事件源、事件对象以及监听者对象之间的关系所件的对象事件源、事件对象以及监听者对象之间的关系所组成。组成。 产生事件的对象会在事件产生时,将与该事件相关的信息产生事件的对象会在事件产生时,将与该事件相关的信息封装在一个称之为封装在一个称之为“事件对象的对象中,并将该对象传递给事件对象的对象中,并将该对象传递给监听者对象,监听者对象根据该事件对象内的信息决定适当的监听者对象,监听者对象根据该事件对象内的信息决定适当的处理方式。监听者对象要收到事件发生的通知,必须在程序代处理方式。监听者对象要收到事件发生的通知,必须在程序代码中向产生事件的对象注册,当事件产生时,产生事件的对象码中向产

19、生事件的对象注册,当事件产生时,产生事件的对象就会主动通知监听者对象,监听者对象就可以根据产生该事件就会主动通知监听者对象,监听者对象就可以根据产生该事件的对象来决定处理事件的方法。的对象来决定处理事件的方法。 29 监听者对象监听者对象listener就是用来处理事件的对象。监听者就是用来处理事件的对象。监听者对象等候事件的发生,并在事件发生时收到通知。对象等候事件的发生,并在事件发生时收到通知。 不同事件源上发生的事件种类不同,不同的事件由不同的不同事件源上发生的事件种类不同,不同的事件由不同的监听者处理。监听者处理。 30二、事件处理的三步一个事件源构件的事件监听者是一个自定义类或已有类

20、的对象,为了能够实现事件监听者的功能,它必须满足以下3个条件:1、必须实现与事件相关的接口。在java中已经定义了所有可能发生的事件类并且预置了相应的事件接口,在这些事件接口中定义了事件处理的抽象方法。在系统正是通过这些已定义好的事件和事件接口来传递事件消息和进行事件处理的,因此事件监听者必须通过implements关键字来实现与所有监听事件相对应的接口。312、必须重置接口中的方法。由于接口中的方法都是抽象的,在事件监听者中必须对接口中的方法依据事件处理的要求进行定义,这段重新定义的代码就是具有事件处理功能的处理方法代码,它是整个事件处理的核心局部。3、将事件监听者通过事件源的addxxxL

21、istener()方法进行注册。这种注册将事件源与事件监听者联系进来,使得事件监听者接受事件源的委托去监听发生的事件并进行相应的事件处理32三、适配器当接口方法超过一个时用适配器Adapter(接口名中的Listener用Adapter换)。定义“Adaper类为事件剪裁类,这些Adapter类就是把它们对应接口中的所有方法用空的方法体实现33事件事件(Event)事件监听者事件监听者(Listener)说明说明ComponentEventComponentListener主要处理组件大小的改变,位置的改变及可主要处理组件大小的改变,位置的改变及可见与不可见状态等见与不可见状态等Compone

22、ntEventComponentListener主要处理组件的加入或移出容器主要处理组件的加入或移出容器FocusEventFocusListener主要处理取得焦点或移开焦点等操作主要处理取得焦点或移开焦点等操作KeyEventKeyListener主要处理键盘的操作主要处理键盘的操作MouseEventMouseListener主要处理鼠标是否在某个组件上、是否按下主要处理鼠标是否在某个组件上、是否按下鼠标等操作鼠标等操作MouseMotionEventMouseMotionListener主要追踪鼠标的位置主要追踪鼠标的位置WindowEventWindowListener主要处理窗口问

23、题,如打开、关闭、最大或主要处理窗口问题,如打开、关闭、最大或最小化等最小化等表表9.4 Component类与类与Container类提供的事件与事件监听者之间的关系类提供的事件与事件监听者之间的关系表表9.4 Component类与类与Container类提供的事件与事件监听者之间的关系类提供的事件与事件监听者之间的关系34表表9.5 AWT的各事件监听者与各种方法之间的关系的各事件监听者与各种方法之间的关系ActionListeneractionPerformed(ActionEvente)WindowListenerwindowActivated(WindowEvent e)windo

24、wClosed(WindowEvent e)windowClosing(WindowEvent e)windowDeactivated(WindowEvent e)windowDeiconified(WindowEvent e)windowIconified(WindowEvent e)windowOpened(WindowEvent e)35MouseListenermouseClicked(MouseEvent e)mouseEntered(MouseEvent e)mouseExited(MouseEvent e)mousePressed(MouseEvent e)mouseReleas

25、ed(MouseEvent e)MouseMotionListenermouseDragged(MouseEvent e)mouseMoved(MouseEvent e)ContainerListenercomponentAdded(ContainerEvent e)componentRemoved(ContainerEvent e)36ComponentListenercomponentHidden(ComponentEvent e)componentMoved(ComponentE vent e)componentResized(ComponentEvent e)componentShow

26、n(ComponentEvent e)FocusListenerfocusGained(FocusEvent e)focusLost(FocusEvent e)37ItemListenerKeyListenerkeyPressed(KeyEvent e)keyReleased(KeyEvent e)keyTyped(KeyEvent e)AdjustmentListeneradjustmentValueChanged(AdjustmentEvent e)itemStateChanged(ItemEvent e)38几种常用的事件情况:一、ActionEvent事件1、引发事件的动作1在文本框T

27、extField)中按回车键时2双击列表框List时3单击命令按钮Button时4单击菜单项MenuItem时2、接口是:ActionListener3、注册监听程序addActionListenerthis4、实现接口方法actionPerformed(ActionEvente)5、主要方法:-getSource()获取引发事件的对象名-getActionCommand()获取对象的标签或事先为这个对象设置的命令名-ID获得事件源的类型39各组件的getActionCommand()命令名为:1Button为按钮的标签如:Buttonb=newButton(“hello)if(e.getAc

28、tionCommand()=“hello/或if(e.getSource()=b)2菜单是菜单项的标签名3列表选项是其标签名4文本域为文本区域中的字符串40二、ItemEvent事件1、引发事件的动作1改变复选框Checkbox对象的选中或不选中状态;2改变单项选择按钮RadioButton对象的选中或不选中状态;3改变下拉列表框ComboBox对象中选项的选中或不选中状态;4改变菜单项MenuItem对象中选项的选中或不选中状态;5改变CheckboxMenuItem对象中选项的选中或不选中状态。6改变List对象选项的选中或不选中状态7改变Choice对象选项的选中或不选中状态2、接口是:

29、ItemListener3、注册监听程序addItemListenerthis4、实现接口方法itemStateChanged(ItemEvente)415、主要方法:-e.getItemSelectable()方法以获得引发选择事件的事件源对象,-getStateChange()方法获取选择事件之后的状态变化类型ItemEvent.SELECTED:代表选项被选中ItemEvent.DESELECTED:代表选项被放弃不选-getItem()返回引发选中状态变化事件的具体选择项e.g:if(e.getStateChange()=e.SELECTED)或if(cbx.getText()=“re

30、d/CheckBoxcbx=(CheckBox).getItem();42三、TextEvent事件1、引发事件的动作1文本区域中改变文本的内容。如:删除和键入字符2、接口是:TextListener3、注册监听程序addTextListenerthis4、实现接口方法TextValueChanged(TextEvente)43四、组件4441、Button(按钮)4(1)创立4ButtonmyB=newButton(“Cancel);4(2)常用构造方法4Button();4Button(Stringlabel);4(3)常用方法4getLabel()返回按钮的标签4setActionCom

31、mand()为按钮设置一个命令名4getActionCommand()获得这个命令名45(4)事件响应a:接口为ActionListenerb:注册事件监听程序addActionListenerc:接口方法ActionPerformered(ActionEvente)d:动作事件的对象e,getSource()获取引发动作事件的按钮对象e.getActionCommand()获取事件设置的命令名(5)组件参加容器e.g:AppletButtonadd()e.g:ButtonExample(main)4642、Label(标签)4Labelmyl=newLabel(“标签内容);4设置标签内容:

32、myl.setText(“新内容);43、Checkbox复选框4(1)创立4Checkboxcb=newCheckbox(“registered,true);4(2)常用构造方法4Checkbox()不带标签,初始状态为关4Checkbox(Stringlabel)带标签,初始状态为关4Checkbox(Stringlabel,booleanstate)带标签,初始状态4由boolean型变量state决定47(2)常用构造方法Checkbox()不带标签,初始状态为关Checkbox(Stringlabel)带标签,初始状态为关Checkbox(Stringlabel,booleansta

33、te)带标签,初始状态由boolean型变量state决定(3)常用方法getState()返回值为布尔量,选中为true,否那么为falsesetState(true)设置是否选中eg:cb.setState(true)48(4)事件响应a:接口为ItemListenerb:注册事件监听程序addItemListenerc:接口方法ItemStateChanged(ItemEvente)d:动作事件的对象e,getSelectabel()获取引发动作事件的事件源对象再调用e.getState()获取选择事件之后的状态或用e.getStateChange()=ItemEvent.SELECTE

34、D)表示选中49(5)组件参加容器Checkboxone=newCheckbox(“one)Checkboxtwo=newCheckbox(“two);Checkboxthree=newCheckbox(“three);Checkboxfour=newCheckbox(“four);p.add(one);p.add(two);p.add(three);p.add(four);e.g:CheckBoxExample5044、CheckboxGroup(单项选择按钮组)4单项选择按钮组是一组Checkbox的集合4(1)创立CheckboxGroup,再参加单个按钮4例:newCheckbox(“

35、male,组名,false);4CheckboxGroupcbg=newCheckboxGroup();4Checkboxone=newCheckbox(“one,cbg,false)4Checkboxtwo=newCheckbox(“two,cbg,true);4Checkboxthree=newCheckbox(“three,cbg,true);51(2)常用构造方法Checkbox(Stringlabel,booleanstate,CheckboxGroupgroup);Checkbox(Stringlabel,CheckboxGroupgroup,booleanstate);(3)常用

36、方法getSelectedCheckbox()获知选择哪个按钮再调用getlabel知道选择了什么信息setSeclectCheckbox()指定单项选择择按钮组中的那个按钮(4)事件响应同Checkboxe.g:CheckBoxGroup5245、Choice下拉列表4(1)创立4Choicec=newChoice();4c.addtem(“First);4c.addItem(“Second);4c.addItem(“Third);4(2)常用构造方法4Choice();4(3)常用方法4getSelectedIndex()返回被选项的序号第一个选项的序号为04getSelectedItem

37、()返回被选取中的标签文本字符串53(4)事件响应a:接口为ItemListenerb:注册事件监听程序addItemListenerc:接口方法ItemStateChanged(ItemEvente)d:动作事件的对象e,getSelectabel()获取引发动作事件的事件源对象再调用e.getState()获取选择事件之后的状态或用e.getStateChange()=ItemEvent.SELECTED)表示选中e.g:ChoiceExample5446、TextField(文本域)-无滚动条4(1)作用:可进行编辑,接受用户输入,而且输入内容为单行4显示4(2)创立对象4TextFie

38、ldtf=newTextField(“sample,30);4构成一个列数为30,初始字符串为Sample的文本域4(3)常用构造方法4A:TextField()-构造一个空文本域4B:TextField(Stringtext)-构造一个显示指定初始字符串的文4本域55C:TextField(Stringtext,intcolumns)-构造一个具有指定列数columns,显示指定初始字符串的文本域D.TextField(intcolumn)-构造一个指定列数的空文本域(4)常用方法:注:在单行文本域中输入时,假设内容超出了指定列宽,将自动向右流动.查看输入的全部内容时,用左右移动A:getT

39、ext()-获取文本域中显示的内容B:setText(Stringstr/value)-设置文本域中的内容C:setEchoChar(Charc)-设置文本域的输入为回显字符D:setEditable(true/false)-设置文本域的编辑方式,false为只读,默认设置为truee.g:EventExe156(5)事件:有两个事件A:当用户按Enter或Reture键时,将引发ActionEvent事件B:改变文本的内容,如:删字符或键入字符时引发TextEvent事件ActionEvent事件a:接口为ActionListenerb:注册事件监听程序addActionListenerc:

40、接口方法actionPerformed(ActionEvente)用getActionCommand()得文本域命令名。E.g:EventEex257TextEvent事件a:接口为TextListenerb:注册事件监听程序addTextListenerc:接口方法textValuechanged(TextEvente)7、TextArea(文本区)-有滚动条(1)作用:支持用户做多行输入和显示(2)创立对象TextAreata=newTextArea(“sample,4,30);构成一个列数为4,列为30,初始字符串为Sample的文本域58(3)常用构造方法A:TextArea()-构造

41、一个的水平和垂直滚动杠的空文本域B:TextArea(Stringtext)-构造一个的水平的垂直流动杠并显示初始文本内容的文本区C:TextArea(Stringtext,introws,intcolumns)-构造一个有水平和垂直流动杠并具有指定行数为rows,列数columns,显示指定初始字符串的文本区D.TextArea(introws,intcolumn)-构造一个有水平和垂直滚动杠,具有指定列数的空文本区E.TextArea(Stringtext,introws,intcolumn,intscrollbars)-构造一个具有指定行数和列数及滚动杠并显示初始文本内容的文本区59Sc

42、rollbars参数指定要显示的滚动杠,四种可能的取值:SCROLLBARS_BOTH同时显示水平和垂直流动杠SCROLLBARS_VERTICAL_ONLY只显示垂直滚动杠SCROLLBARS_HORIONTAL_ONLY只显示水平流动杠SCROLLBARS_NONE两个滚动杠都不显示(4)常用方法:Append(String)将指定文本追加到文本区Insert(String,int)将指定文本插入到文本区的特定位置replaceRange(String,int,int)用指定文本替换文本区中的内容setEditable(boolean)将文本区设置为不可编辑或可编辑状态605)事件:当用户

43、按Enter或Reture键时,将不引发ActionEvent事件和TextEvent事件,其结果只是向缓冲区输入一个字符,而不能表示输入结束,因此,当需要识别用户“输入完成时,通常要在文本区旁放置一个Apply或Commit之类的按钮6TextArea和TextField的父类TextComponent类主要方法:getSelectedText()从文本组件中提取被选中的文本内容getText()从文本组件中提取所有文本的内容select(int,int)在文本组件中选中局部内容selectAll()在文本组件中选中所有内容setEditable(boolean)设置为可编辑或不可编辑状态s

44、etText(String)设置文本组件中的文本内容6148、List(列表)4(1)作用:供用户运行选择的一系列可选项4(2)创立对象Listl=newList(4,false);4构成一个显示4项的单项列表,false单项选择,true多项选择取4使用addItem()向列表中参加可选项4l.addItem(“Monday);4l.addItem(“Tuesday);4l.addItem(“Wednesday);62(3)常用构造方法List()构造一个单项选择列表List(introws)构造一个指定项数的单项选择列表List(introws,boolesnmultipleMode)构造

45、一个显示指定项数row列表,multipleMode为false单项选择为false,多项选择为true4常用方法add(Stringname)add(Stringname,intindex)63(4)事件单击列表项-引以ItemEvent事件双击列表项-引以ActionEvent事件用getSelectedItem()获得当前选中项的内容单项选择用getSelectedItems()获得当前选中项的内容多项选择返回是一个数组用getSelectedItem()获得当前选中项的内容单项选择用getSelectedItems()获得当前选中项的内容多项选择返回是一个数组getSelectedIn

46、dex()获得当前选中项下标索引值6449、菜单4(1)特点:1、不能放入普通容器中,只能放入“菜单容器4如:Frame,MenuBar,Menu42、不能用布局管理器进行控制43、菜单条不支持监听者,其预期的事件自动处理4(2)与菜单组件相关的类:4MenuBar,Menu,MenuItem,CheckboxMenuItem65(3)菜单的创立分三步:A:菜单条:Framef=newFrame(“MenuBar);MenuBarmb=newMenuBar();f.addMenuBar(mb)B:菜单Menu():1、构造方法有两个:-Menu(Stringstr)/用给定的标识构造一个菜单e

47、.g:Menu(“file)-Menu(Stringstr,booleanb)/用给定的标识构造一个菜单.如果布尔值为false,那么当释放鼠标按后,菜单项会消失,如果布尔值为true,那么当释放鼠标时菜单项仍将显示;662、创立对象Menum1=newMenu(“File);Menum2=newMenu(“Edit);3、方法:Disable为不可选项,enable方法为可选项C:菜单项MenuItem():1、MenuItem与CheckboxMenuItem()类的构造方法MenuItemStringstrMenuItem(_)/建一个分隔符或m1.setSeparator()Check

48、boxMenuItem(Stringstr)/2、创立对象MenuItemmi1=newMenuItem(“new);MenuItemmi2=newMenuItem(“cope);MenuItemmi2=newMenuItem(“delete);673、添加不同内容到菜单项中a:加菜单项m1.add(mi1);m1.add(mi2);b:加复选项CheckboxMenuItem()的菜单项选择项选中为钩CheckboxMenuItemcb=newCheckboxMenuItem()m1.add(cb);(4)事件处理A、菜单项被选中的事件是ActionEventB、CheckboxMenuIt

49、em复选状态发生变化时引发ItemEvent事件68e.g:MenuExample69410、弹出式菜单PopupMenu)41特点:1需要依附在某个组件上42不受布局管理器的控制43显示必须主调用show()4构造方法:PopupMenu()4PopupMenu(“java)70练习题分别编程使用五种布局方式显示一个容器和其中的三个Button、三个CheckBox和、三个TextArea编写Application程序,要求使用组件在屏幕上输入学生档案资料,然后保存到一个文件中编程实现:在屏幕上显示两个TextField1、TextField2、一个List和一个Button,当在TextF

50、ield中输入姓名和E-mail后,按Button将其保存在List中,注意List中的姓名无重复71HTMLHTML与与AppletApplet-下一讲下一讲72bJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQ

51、fNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0

52、y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVj

53、SgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D)v&s#pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z

54、)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPd

55、LaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t

56、!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeM

57、bJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(

58、u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3Cu%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK

59、8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3y(u%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZ

60、oWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9

61、H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWlThQeMb4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pX

62、lUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7

63、F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeNbJ8G4D1A-w*t$qYnRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYm

64、VjRgOdL9I6F3B0y(v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8C1z-w&t!qYmVjRgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C

65、0z)v&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMF3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E-x*t$qZ73

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号