第06章 图形用户界面.ppt_第1页
第06章 图形用户界面.ppt_第2页
第06章 图形用户界面.ppt_第3页
第06章 图形用户界面.ppt_第4页
第06章 图形用户界面.ppt_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java程序设计实用教程(第4版),第6章图形用户界面,图形用户界面(GraphicalUserInterface,GUI),使用图形方式借助菜单、按钮等标准界面元素和键盘、鼠标操作,实现人机交互。6.1AWT组件及其属性类6.2事件处理6.3Swing组件及事件6.4图形图像,Java程序设计实用教程(第4版),第6章图形用户界面,内容和要求:掌握JavaSwing组件的使用方法,包括窗口、框架、对话框、面板、文本编辑框、按钮、组合框等,掌握多种布局方式,掌握窗口菜单和快捷菜单设计方式。理解委托事件处理模型,掌握不同组件、不同事件的事件处理方法,设计出能够响应事件的Java图形用户界面。熟悉在组件上绘图的方法。重点:组件,布局,事件处理,异常处理。难点:组件量大,方法众多;采用接口实现的委托事件处理模型。,Java程序设计实用教程(第4版),6.1AWT组件及其属性类,Java的AWT和Swingjava.awt包提供抽象窗口工具集(AbstractWindowTookit,AWT)。javax.swing包提供JDK1.2的Swing组件,它扩展了AWT组件的功能。6.1.1AWT组件6.1.2布局管理6.1.3颜色和字体,Java程序设计实用教程(第4版),6.1.1AWT组件,Java程序设计实用教程(第4版),1.组件(Component),publicabstractclassComponentextendsObjectimplementsImageObserver,MenuContainer,SerializablepublicintgetWidth()/宽度publicintgetHeight()/高度publicvoidsetSize(intwidth,intheight)/宽度和高度publicintgetX()/位置的X坐标值publicintgetY()/位置的Y坐标值publicvoidsetLocation(intx,inty)/坐标位置,x、y指定组件左上角相对于容器的坐标位置publicvoidsetBounds(intx,inty,intwidth,intheight)/坐标位置和宽度、高度publicColorgetForeground()/获得组件的文本颜色publicvoidsetForeground(Colorcolor)/设置组件的文本颜色publicColorgetBackground()/获得组件的背景颜色publicvoidsetBackground(Colorcolor)/设置组件的背景颜色publicFontgetFont()/获得组件字体publicvoidsetFont(Fontfont)/设置组件字体publicvoidsetVisible(booleanvisible)/设置组件是否显示publicvoidsetEnabled(booleanenabled)/设置是否有效状态,Java程序设计实用教程(第4版),图6.2坐标系,一个组件在容器中的位置(x,y)是指组件左上角点相对于容器的坐标。,Java程序设计实用教程(第4版),6.1.1AWT组件,Java程序设计实用教程(第4版),2.容器,publicclassContainerextendsComponentpublicvoidsetLayout(LayoutManagermgr)/设置布局,参数类型是接口,类型的多态,实际参数是实现该接口的类的实例publicComponentadd(Componentcomp)/添加组件;参数类型是抽象类,类型的多态,实际参数是该抽象类的子类实例,可添加任意组件publicvoidremove(inti)/删除组件注意:布局管理器设置容器中组件的大小和位置,Java程序设计实用教程(第4版),6.1.1AWT组件,Java程序设计实用教程(第4版),3.窗口和面板,窗口是顶层容器,不能包含在其它容器中:publicclassWindowextendsContainerimplementsAccessible/面板类publicvoidsetLocationRelativeTo(Componentcomp)/将窗口置于屏幕中央面板是二级容器,不能独立存在,必须包含在其它容器中:publicclassPanelextendsContainerimplementsAccessible/面板类publicPanel()/默认FlowLayout布局,居中对齐publicPanel(LayoutManagerlayout)/layout指定布局管理器,Java程序设计实用教程(第4版),6.1.1AWT组件,Java程序设计实用教程(第4版),4.框架和对话框,Frame框架是一种窗口,用作于JavaApplication应用程序的主窗口,带有最大化和最小化控制按钮。publicclassFrameextendsWindowimplementsMenuContainer/框架publicFrame()publicFrame(Stringtitle)/参数title指定框架的标题publicStringgetTitle()/获取框架的标题publicvoidsetTitle(Stringtitle)/设置或修改框架的标题publicvoidsetResizable(booleanresizable)/设置框架是否可变大小,publicclassDialogextendsWindow/对话框publicDialog(Frameowner)/owner指明拥有对话框的框架publicDialog(Frameowner,Stringtitle)/title是对话框的窗口标题publicDialog(Frameowner,booleanmodal)/modal指明该对话框是否为模式窗口publicDialog(Frameowner,Stringtitle,booleanmodal)注意:1.对话框不能作为应用程序主窗口,必需依附于框架。其构造方法必须指明对话框所依附的框架;2.模式对话框总在最前面,不关闭对话框不能进行窗口操作。默认为非模式对话框。,Java程序设计实用教程(第4版),4.框架和对话框,Java程序设计实用教程(第4版),6.1.1AWT组件,Java程序设计实用教程(第4版),11.2Applet应用程序,【例11.1】在Applet中显示当前日期和时间。继承Applet类或JApplet类的类嵌入Applet的HTML文档,Applet类是Panel的子类,不能独立运行;Applet是容器,可以容纳其他组件。Applet应用程序必须声明为public,其中没有构造方法、析构方法和main()方法。,Java程序设计实用教程(第4版),6.1.1AWT组件,Java程序设计实用教程(第4版),5.标签,publicclassLabelextendsComponentimplementsAccessiblepublicstaticfinalintLEFT/左对齐,默认值publicstaticfinalintCENTER/居中publicstaticfinalintRIGHT/右对齐publicLabel()publicLabel(Stringtext)/text指定显示字符串publicLabel(Stringtext,intalign)/align指定对齐方式publicStringgetText()/获得显示字符串publicvoidsetText(Stringtext)/设定显示字符串注意:标签只能显示信息,不能用于输入。,Java程序设计实用教程(第4版),6.文本行,文本行是一个单行文本编辑框,用于输入一行文字。publicclassTextFieldextendsTextComponentpublicTextField()publicTextField(Stringtext)/text指定内容publicTextField(intcolumns)/columns指定列数publicTextField(Stringtext,intcolumns)publicStringgetText()/获得内容publicvoidsetText(Stringtext)/设置内容,Java程序设计实用教程(第4版),7.按钮,publicclassButtonextendsComponentimplementsAccessiblpublicButton(Stringtext)/text指定按钮标题【例6.1】用户登录窗口。,Java程序设计实用教程(第4版),6.1.1AWT组件,Java采用布局管理器(layoutmanager)对容器中的组件进行相对布局,每种布局管理器指定一种组件之间的相对位置。java.awt布局管理器类主要有:FlowLayout流BorderLayout边GridLayout网格GridBagLayout网格包,Java程序设计实用教程(第4版),6.1.2布局管理,Java程序设计实用教程(第4版),1.FlowLayout(流布局管理器),publicclassFlowLayoutimplementsLayoutManager,java.io.SerializablepublicstaticfinalintLEFT=0;/左对齐,类常量,全部大写publicstaticfinalintCENTER=1;/居中publicstaticfinalintRIGHT=2;/右对齐publicFlowLayout()/构造方法,默认居中publicFlowLayout(intalign)/align参数指定对齐方式按行布置组件方式(从左至右,一行一行地排列,一行放满再放置到下一行)。,Java程序设计实用教程(第4版),2.BorderLayout(边布局管理器),publicclassBorderLayoutimplementsLayoutManager2,java.io.SerializablepublicstaticfinalStringNORTH=North;publicstaticfinalStringSOUTH=South;publicstaticfinalStringEAST=East;publicstaticfinalStringWEST=West;publicstaticfinalStringCENTER=Center;/注意,字符串首字母大写publicBorderLayout()/构造方法分为5个区域(东、南、西、北和中间)。默认组件放置在中部区域;后放置的组件覆盖之前组件;中部区域可扩展到其他无组件区域。,Java程序设计实用教程(第4版),3.GridLayout(网格布局管理器),publicclassGridLayoutimplementsLayoutManager,SerializablepublicGridLayout(introws,intcols)/参数指定行、列注:将容器划分为大小相等的若干行*若干列的网格;组件放置次序是行优先,一行放满后自动转入下一行;增加网格原则保持行数不变。,Java程序设计实用教程(第4版),4.GridBagLayout网格包布局,publicclassGridBagLayoutextendsObjectimplementsLayoutManager2,SerializablepublicGridBagLayout()publicvoidsetConstraints(Componentcomp,GridBagConstraintscons)publicclassGridBagConstraintsextendsObjectimplementsCloneable,Serializablepublicintgridwidth/指定组件宽度publicintgridheight/指定组件高度publicintgridx;/指定水平坐标publicintgridy/指定垂直坐标publicintfill/指定是否调整组件大小及调整原则publicGridBagConstraints()/创建对象注:允许每个组件占据一个或多个网格单元。,容器的默认布局管理器,Java程序设计实用教程(第4版),修改默认布局可以调用:setLayout(LayoutManagermgr);使默认布局管理器失效:setLayout(null);,Java程序设计实用教程(第4版),容器添加组件,1.publicComponentadd(Componentcomp)/添加组件2.仅用于BorderLayout布局:publicvoidadd(Componentcomp,Objectconstraints)注:constraints指定组件添加到BorderLayout布局容器的位置,默认BorderLayout.CENTER。3.用于FlowLayout和GridLayout布局:publicComponentadd(Componentcomp,intindex)注:添加comp作为容器的第index个组件,voidremove(Componentcomp)voidremove(intindex)voidremoveAll(),Java程序设计实用教程(第4版),容器移除组件,Java程序设计实用教程(第4版),6.1.1AWT组件,Java程序设计实用教程(第4版),6.1.3颜色和字体,颜色publicclassColorimplementsPaint,java.io.SerializablepublicColor(intr,intg,intb)/以三元色值构造对象publicColor(intrgb)/以RGB值构造对象publicintgetRed()/返回红色值publicintgetGreen()/返回绿色值publicintgetBlue()/返回蓝色值publicintgetRGB()/返回颜色的RGB值publicColorbrighter()/使颜色变浅publicColordarker()/使颜色变深,Java程序设计实用教程(第4版),图4.8颜色RGB整数结构图,Java程序设计实用教程(第4版),设置组件前景色PublicvoidsetForeground(Colorc)设置组件背景色PublicvoidsetBackground(Colorc)表示颜色的类Color:含有各种颜色常量Color(red,green,blue)来创建非缺省色,设置颜色,Java程序设计实用教程(第4版),2.字体,publicclassFontimplementsjava.io.SerializablepublicstaticfinalintPLAIN=0;/常规publicstaticfinalintBOLD=1;/粗体publicstaticfinalintITALIC=2;/斜体publicFont(Stringname,intstyle,intsize)/字体名、字形、字号publicStringgetName()/返回字体名称publicintgetSize()/返回字体大小publicintgetStyle()/返回粗、斜体值,Fontmf=newFont(String字体,int风格,int字号);字体:TimesRoman,Courier,Arial等风格:三个常量-Font.PLAIN,Font.BOLD,Font.ITALIC字号:字的大小(磅数)获取当前使用的字体:getFont()设置当前使用的字体:setFont(Fontfn),Java程序设计实用教程(第4版),设置字体,6.2事件处理,事件(event)是指一个状态的改变,或者一个活动的发生。产生事件的组件称为事件源(eventsource)。委托事件模型:jdk1.1以后引入的一种新的事件代理模块。通过它,事件源发出的事件被委托给(注册的)事件监听器(Listener),并由它负责执行相应的响应方法。,Java程序设计实用教程(第4版),Java程序设计实用教程(第4版),6.2.1委托事件模型,事件类和事件监听器接口属于java.awt.event包和javax.swing.event包,每个事件类对应一个事件监听器接口,包含若干抽象的事件处理方法。,2.事件类和事件监听器接口,动作事件监听器接口publicinterfaceActionListenerextendsEventListener/动作事件监听器接口publicvoidactionPerformed(ActionEventev);/动作事件/打开后publicabstractvoidwindowClosing(WindowEventev);/关闭时publicabstractvoidwindowClosed(WindowEventev);/关闭后publicabstractvoidwindowIconified(WindowEventev);/最小化publicabstractvoidwindowDeiconified(WindowEventev);/恢复publicabstractvoidwindowActivated(WindowEventev);/激活publicabstractvoidwindowDeactivated(WindowEventev);/变为不活动,Java程序设计实用教程(第4版),3.组件注册事件监听器对象,publicclassButtonextendsComponentimplementsAccessiblepublicvoidaddActionListener(ActionListenerl)/注册动作事件监听器publicvoidremoveActionListener(ActionListenerl)/取消注册动作事件监听器button.addActionListener(this);/为按钮注册单击事件监听器,Java程序设计实用教程(第4版),窗口对象注册窗口事件监听器,publicclassWindowextendsContainerimplementsAccessible/窗口类voidaddWindowListener(WindowListenerl)/注册窗口事件监听器voidremoveWindowListener(WindowListenerl)/取消窗口事件监听器frame.addWindowListener(this);/为框架注册窗口事件监听器注册事件监听器作用:委托实现事件监听器接口的类实现事件处理。,Java程序设计实用教程(第4版),【例6.2】Unicode字符查询器。,按钮动作事件的响应和处理,由当前类处理关闭窗口事件的响应和处理,委托WinClose类处理,委托事件模型的处理步骤,引入事件处理包:importjava.awt.*;importjava.awt.event.*;为产生事件的组件注册事件监听器:组件对象.add*Listener(事件处理类的对象);由事件处理类实现事件监听器接口(*Listener),在相应的事件处理方法中处理事件。class*implements*Listener/实现事件处理方法,Java程序设计实用教程(第4版),Java程序设计实用教程(第4版),事件处理总结,一个组件如果要响应多个事件,可以注册多个事件监听器;多个组件如果要响应同一个事件,可以注册同一个事件监听器;事件只传递给已注册的组件,不会被其他组件或容器获得;事件处理方法既可以由本类实现,也可以委托其他类实现。,Java程序设计实用教程(第4版),4.图形用户界面的运行由事件驱动,不同组件的事件或同一组件的不同事件具有约定的执行次序。各组件的事件处理方法是否执行以及执行次序,取决于用户操作。在一个事件处理方法中,程序按照语句的书写次序顺序执行。,Java程序设计实用教程(第4版),6.2.2AWT事件类和事件监听器接口,1.AWT事件类,Java程序设计实用教程(第4版),1.AWT事件类,publicclassEventObjectimplementsjava.io.SerializablepublicObjectgetSource()/返回产生事件的事件源组件publicStringtoString()/返回事件对象信息publicclassActionEventextendsAWTEventpublicStringgetActionCommand()/获得按钮的标签,Java程序设计实用教程(第4版),2.AWT事件监听器接口,WindowListener窗口事件ActionListener动作事件MouseMotionListener鼠标移动事件MouseListener鼠标事件KeyListener键盘事件FocusListener焦点事件P145:表6-1AWT事件监听器接口及其方法P145:事件监听器接口的意义,Java程序设计实用教程(第4版),3.AWT组件类中注册事件监听器的方法,publicabstractclassComponentextendsObjectimplementsImageObserver,MenuContainer,SerializablepublicvoidaddKeyListener(KeyListenerl)publicvoidaddMouseListener(MouseListenerl)publicvoidaddMouseMotionListener(MouseMotionListenerl)P146:表6-2AWT组件注册事件监听器,Java程序设计实用教程(第4版),6.3Swing组件及事件,6.3.1Swing组件与布局6.3.2文本显示和编辑组件6.3.3按钮组件6.3.4列表框和组合框组件6.3.5中间容器6.3.6JOptionPane和JColorChooser对话框6.3.7菜单组件6.3.8表格,Java程序设计实用教程(第4版),6.3.1Swing组件与布局1.Swing组件类关系,Swing组件在javax.swing包及其子包中;Swing事件在javax.swing.event包中。,顶层容器,轻型组件,Java程序设计实用教程(第4版),图6.12javax.swing包中主要类及组件类的继承关系,Java程序设计实用教程(第4版),2.Swing顶层容器(JFrame、JDialog),java.awt.Window的子类,重型组件:Swing组件要加到顶层容器包含的内容窗格容器(轻型组件)中:内容窗格publicContainergetContentPane()窗口关闭方式publicvoidsetDefaultCloseOperation(intoperation)publicinterfaceWindowConstantspublicstaticfinalintDO_NOTHING_ON_CLOSE=0;/什么也不做publicstaticfinalintHIDE_ON_CLOSE=1;/隐藏窗口publicstaticfinalintDISPOSE_ON_CLOSE=2;/释放窗口publicstaticfinalintEXIT_ON_CLOSE=3;/结束程序运行jframe.setDefaultCloseOperation(EXIT_ON_CLOSE);/结束程序运行jdialog.setDefaultCloseOperation(HIDE_ON_CLOSE);/隐藏对话框可以不写实现WindowListener接口的windowClosing(WindowEventev)方法,Java程序设计实用教程(第4版),3.BoxLayout盒式布局和Box容器,publicclassBoxLayoutextendsObjectimplementsLayoutManager2,SerializablepublicstaticfinalintX_AXIS/水平轴常量publicstaticfinalintY_AXIS/垂直轴常量publicBoxLayout(Containertarget,intaxis)publicclassBoxextendsJComponentimplementsAccessiblepublicBox(intaxis),Java程序设计实用教程(第4版),6.3.2文本显示和编辑组件,标签publicJLabel(Stringtext,Iconicon,intalign)/构造方法,icon指定图标publicIcongetIcon()/获得图标publicvoidsetIcon(Iconicon)/设置图标Icon图标publicclassImageIconextendsObjectimplementsIcon,Serializable,Accessible/图标类ImageIcon(Stringfilename)/filename指定图标文件名,Java程序设计实用教程(第4版),3.文本行和文本区,publicabstractclassJTextComponentextendsJComponentimplementsScrollable,AccessiblepublicStringgetText()/获得文本行中的内容publicvoidsetText(Stringtext)/设置文本行中的内容publicvoidsetEditable(booleanedit)/设置文本行是否可编辑publicbooleanisEditable()/判断文本行是否可编辑文本行JTextField密码行JPasswordField文本区JTextAreapublicclassJTextAreaextendsJTextComponentpublicJTextArea()publicJTextArea(Stringtext)/text指定初始显示文本publicJTextArea(introws,intcolumns)/指定行数和列数publicJTextArea(Stringtext,introws,intcolumns),Java程序设计实用教程(第4版),4.Swing文本编辑事件,文本编辑事件类javax.swing.event.CaretEventpublicvoidaddCaretListener(CaretListenerl)publicinterfaceCaretListenerextendsEventListener/文本编辑事件监听器接口publicvoidcaretUpdate(CaretEventev);动作事件类ActionEvent,Java程序设计实用教程(第4版),【例6.3】金额的中文大写形式。,文本行响应文本编辑事件处理输入错误使用对话框实例内部类表示对象嵌套【思考题6-2】修改MessageJDialog类声明,或者static,或者声明为公有外部类。,Java程序设计实用教程(第4版),5.微调文本行组件及事件,publicclassJSpinnerextendsJComponentimplementsAccessiblepublicJSpinner()publicObjectgetValue()/获得值publicvoidsetValue(Objectvalue)/设置值publicvoidaddChangeListener(ChangeListenerl)publicvoidremoveChangeListener(ChangeListenerl)publicinterfaceChangeListenerextendsEventListenerpublicvoidstateChanged(ChangeEventev);,Java程序设计实用教程(第4版),6.3.4按钮组件,按钮JButtonpublicJButton(Stringtext,Iconicon)复选框publicclassJCheckBoxextendsJToggleButtonimplementsAccessiblepublicJCheckBox(Stringtext)publicJCheckBox(Stringtext,booleanselected)publicJCheckBox(Stringtext,Iconicon,booleanselected),Java程序设计实用教程(第4版),3.单选按钮,publicclassJRadioButtonextendsJToggleButtonimplementsAccessiblepublicJRadioButton(Stringtext)publicJRadioButton(Stringtext,booleanselected)publicJRadioButton(Stringtext,Iconicon,booleanselected)/icon指定图标publicclassButtonGroupimplementsSerializable/按钮组类publicButtonGroup()publicvoidadd(AbstractButtonbutton)/添加按钮publicvoidremove(AbstractButtonbutton),Java程序设计实用教程(第4版),4.抽象按钮类AbstractButton,publicabstractclassAbstractButtonextendsJComponentimplementsItemSelectable,SwingConstantspublicStringgetText()publicvoidsetText(Stringtext)publicbooleanisSelected()/选中状态publicvoidsetSelected(booleanselected)/选中状态publicObjectgetSelectedObjects()/选中对象数组publicvoidaddActionListener(ActionListenerl)/动作事件publicvoidremoveActionListener(ActionListenerl),Java程序设计实用教程(第4版),6.3.4列表框和组合框1.列表框及其事件(1)JList列表框,publicclassJListextendsJComponentimplementsScrollable,Accessible/列表框类publicJList(Titems)/由对象数组提供数据项publicJList(ListModellistmodel)/指定列表框模型publicvoidsetSelectedIndex(inti)/选中第i(0)项publicintgetSelectedIndex()/返回首个选中项序号publicTgetSelectedValue()/返回首个选中项对象voidaddListSelectionListener(ListSelectionListenerl)/注册列表框选择事件监听器,Java程序设计实用教程(第4版),(2)列表框模型,/默认列表框模型类publicclassDefaultListModelextendsAbstractListModelpublicDefaultListModel()publicintgetSize()/返回列表框的数据项数publicTgetElementAt(inti)/返回序号为i的组件publicvoidsetElementAt(Titem,inti)/设置序号为i的组件为itempublicintindexOf(Objectitem)/返回item首次出现位置publicvoidinsertElementAt(Titem,inti)/在i处插入item数据项publicvoidaddElement(Titem)/添加item数据项publicvoidremoveElementAt(inti)/删除序号为i的数据项publicbooleanremoveElement(Titem)/删除首次出现的item项publicvoidremoveAllElements()/删除所有数据项,Java程序设计实用教程(第4版),(3)列表框选择事件,publicinterfaceListSelectionListenerextendsEventListener/列表框选择事件监听器接口publicabstractvoidvalueChanged(ListSelectionEventev);/列表框选择事件处理方法,Java程序设计实用教程(第4版),2.组合框(1)JComboBox组合框,publicclassJComboBoxextendsJComponentimplementsItemSelectable,ListDataListener,ActionListener,AccessiblepublicJComboBox()publicJComboBox(Titems)/由对象数组提供数据项publicJComboBox(ComboBoxModelmodel)/指定组合框模型publicvoidsetEditable(booleanedit)/是否可编辑,默认falsepublicObjectgetSelectedItem()/返回选中数据项对象publicvoidsetSelectedItem(Objectitem)/设置选中项publicintgetSelectedIndex()/返回选中数据项序号publicvoidsetSelectedIndex(inti)/选中第i(0)项publicvoidaddItem(Titem)/添加数据项publicvoidremoveItem(Objectitem)/删除数据项publicvoidremoveItemAt(inti)/删除第i(0)项publicvoidremoveAllItems()/删除所有项,触发动作事件publicvoidaddActionListener(ActionListenerlistener),Java程序设计实用教程(第4版),列表框模型和组合框模型类关系,Java程序设计实用教程(第4版),(2)组合框响应动作事件,在下拉列表中选择数据项,e.getActionCommand()返回“comboBoxChanged”;在文本行中按Enter键,e.getActionCommand()返回“comboBoxEdited”。,Java程序设计实用教程(第4版),组合框触发ActionEvent事件,首次调用addItem(Titem)方法添加数据项时;调用removeItem(Objectobj)、removeItemAt(inti)或removeAllItems()方法,删除最后仅剩一项时;调用setSelectedIndex()、setSelectedItem(Objectobj)设置指定数据项为选中状态。,Java程序设计实用教程(第4版),6.3.5中间容器,滚动窗格publicclassJScrollPaneextendsJComponentimplementsScrollPaneConstants,AccessiblepublicJScrollPane(Componentview),Java程序设计实用教程(第4版),2.分割窗格,publicclassJSplitPaneextendsJComponentimplementsAccessiblepublicfinalstaticintVERTICAL_SPLIT=0;/垂直分割常量publicfinalstaticintHORIZONTAL_SPLIT=1;/水平分割常量publicJSplitPane()/创建分割窗格publicJSplitPane(intorientation)/参数指定分割方向publicvoidsetDividerLocation(intlocation)/设置分割条位置publicvoidsetOneTouchExpandable(booleanexpand)/当expand为true时,提供一键展开按钮,快速展开/折叠分隔条;默认false,Java程序设计实用教程(第4版),6.3.6JOptionPane和JColorChooser对话框,JOptionPane对话框消息对话框JOptionPane.showMessageDialog(this,请重新输入!);确认对话框inti=JOptionPane.showConfirmDialog(this,终止当前程序运行?);输入对话框Stringpassword=JOptionPane.showInputDialog(this,密码);JColorChooser选择颜色对话框【图6.15】publicstaticColorshowDialog(Componentparent,Stringtitle,Colorcolor),Java程序设计实用教程(第4版),【例6.4】输入用户信息。,PersonJPanel面板Person对象信息管理框架equals(Object)方法比较所有成员变量值,以区分对象this.listmodel.removeElement(this.person.get();查找操作只比较对象的某个或某些成员变量值,作为查找依据。在列表框模型数据项中查找obj对象:publicvoidsearch(Tobj,Equalablee)排序。将列表框模型数据项排序:publicvoidsort(Comparatorc),Java程序设计实用教程(第4版),6.3.7菜单组件,使用菜单的两种方式窗口菜单(窗口的标题栏下方)快捷菜单(鼠标右键弹出),窗口菜单,建立菜单栏需要的三个步骤如下:建立菜单栏(JMenuBar)建立菜单(JMenu)建立菜单项(JMenuItem),Java程序设计实用教程(第4版),Java程序设计实用教程(第4版),2.菜单栏,publicclassJMenuBarextendsJComponentimplementsAccessible,MenuElementpublicJMenuBar()publicJMenuadd(JMenumenu)/添加菜单JFrame类提供setJMenuBar()方法将菜单栏放置在框架窗口上方,该方法声明如下:publicvoidsetJMenuBar(JMenuBarmenubar)例:建立菜单栏(JMenuBar)JMenuBarmenuBar=newJMenuBar();frame.setJMenuBar(menuBar);,Java程序设计实用教程(第4版),3.菜单,publicclassJMenuextendsJMenuItemimplementsAccessible,MenuElementpublicJMenu(Stringtext)/菜单标题publicJMenuItemadd(JMenuItemitem)/添加菜单项publicvoidaddSeparator()/添加分隔线publicJMenuIteminsert(JMenuItemitem,inti)publicvoidinsert(Stringtext,inti)publicvoidremove(JMenuItemitem),Java程序设计实用教程(第4版),4.菜单项,publicclassJMenuItemextendsAbstractButtonimplementsAccessible,MenuElementpublicJMenuItem(Stringtext)/菜单标题publicJMenuItem(Stringtext,Iconicon)/icon指定菜单图标publicvoidsetAccelerator(KeyStrokekeyStroke)/设置快捷键,Java程序设计实用教程(第4版),5.选择菜单项(复选菜单项),publicclassJCheckBoxMenuItemextendsJMenuItemimplementsSwingConstants,AccessiblepublicJCheckBoxMenuItem(Stringtext)publicJCheckBoxMenuItem(Stringtext,booleanselected)publicJCheckBoxMenuItem(Stringtext,Iconicon,booleanselected),Java程序设计实用教程(第4版),5.选择菜单项(单选菜单项),publicclassJRadioButtonMenuItemextendsJMenuItemimplementsAccessiblepublicJRadioButtonMenuItem(Stringtext)publicJRadioButtonMenuItem(Stringtext,booleanselected)publicJRadioButtonMenuItem(Stringtext,Iconicon,booleanselected),Java程序设计实用教程(第4版),6.快捷菜单,publicclassJPopupMenuextendsJComponentimplementsAccessible,MenuElementpublicJPopupMenu()publicJMenuItemadd(JMenuItemitem)/添加菜单项publicvoidaddSeparator()/添加分隔线publicvoidshow(Componentinvoker,intx,inty)/在(x,y)位置处

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论