版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五讲 图形用户界面第五章第五章 图形用户界面设计图形用户界面设计5.1 Java 的GUI概述1、图形用户界面、图形用户界面GUI(Graphics User Interface),就是,就是应用程序提供给用户操作的图形界面,包括窗口、菜单、按应用程序提供给用户操作的图形界面,包括窗口、菜单、按钮、工具栏和其他各种界面元素。钮、工具栏和其他各种界面元素。2、在、在Java里有两个包为里有两个包为GUI设计提供了丰富的功能:设计提供了丰富的功能:awt(abstract windows toolkit)包和包和Swing包。包。3、awt是是java的早期版本,组件种类有限,只提供基本的的早期
2、版本,组件种类有限,只提供基本的GUI设计工具。设计工具。4、Swing包是包是SUN公司对早期版本的改进版本,它不仅包公司对早期版本的改进版本,它不仅包括括AWT中所有部件,并且提供了更加丰富的部件和功能,中所有部件,并且提供了更加丰富的部件和功能,它足以完全实现它足以完全实现GUI设计所需的一切功能。设计所需的一切功能。5、Swing会用到会用到AWT中许多知识,掌握了中许多知识,掌握了AWT,也就基,也就基本掌握了本掌握了Swing。一些基本概念nAWTn英文全称:英文全称:Abstract Windowing Toolkit n中文名:抽象窗口工具包中文名:抽象窗口工具包 nAWT是是
3、Java图形用户界面设计的基础图形用户界面设计的基础n包:包:java.awtnAWT组件举例组件举例nFrame:基本的窗体类:基本的窗体类nButton:按钮类:按钮类nTextField:文本框类:文本框类nLabel:标签类:标签类nCheckBox:复选框类:复选框类nList:列表类:列表类初识awt实例import java.awt.*;/引用引用awt包中的组件类包中的组件类public class TestFramepublic static void main(Stringargs)/产生一个具有标题栏的框架窗口产生一个具有标题栏的框架窗口Frame frm=new Fra
4、me(“我的框架窗口我的框架窗口”); frm.setSize(300,300);/设置窗口的大小设置窗口的大小frm.setVisible();/显示窗口显示窗口n创建窗体的步骤:创建窗体的步骤:创建一个窗体对象创建一个窗体对象(Frame frm=new Frame()设置窗体的大小设置窗体的大小(frm.setSize(400,400)显示窗体显示窗体(frm.setVisible() 例:AWT开发图形界面在窗体中加入一个按钮在窗体中加入一个按钮nimport java.awt.*; /导入导入awt工具包工具包npublic class AWTFrame /类名是类名是AWTFram
5、enn public static void main(String args) /main方法方法n n Frame frm=new Frame(); /声明并实例化了一个声明并实例化了一个Frame对象对象n frm.setSize(400, 300); /把窗体对象的宽度设为把窗体对象的宽度设为400,高度设,高度设为为300n frm.setLayout(null); /设置窗体布局为空,必须要有这个语句设置窗体布局为空,必须要有这个语句n Button btn=new Button(一个按钮一个按钮); /创建一个创建一个Button对象,对象,按钮文字是按钮文字是“一个按钮一个按钮
6、”n btn.setLocation(100, 100); /设置按钮的位置,左上角坐标是设置按钮的位置,左上角坐标是(100,100)n btn.setSize(80,20); /设置按钮的大小,宽为设置按钮的大小,宽为80,高为,高为20n frm.add(btn); /把这个按钮加到把这个按钮加到frm窗体中窗体中n /frm.remove(btn);n frm.setVisible(true); /显示窗体显示窗体n n5.1.1 GUI组件分类在在AWT的概念中,的概念中,窗口系统中所显示的各种对象都统称窗口系统中所显示的各种对象都统称为为“GUI组件组件”(Component)。组
7、件有基本组件和容器组组件有基本组件和容器组件之分件之分。 1、顾名思义,、顾名思义,基本组件是不可再分割的组件基本组件是不可再分割的组件,基本组件各自,基本组件各自都有它们特定的功能。基本组件是构成图形用户界面的基本都有它们特定的功能。基本组件是构成图形用户界面的基本元素。元素。2、 容 器 组 件、 容 器 组 件是 用 来包含其他组件的,故称之为容器是 用 来包含其他组件的,故称之为容器(container)。用户可以把各种组件放入到容器中,也可以。用户可以把各种组件放入到容器中,也可以把容器放到另一个容器中,从而形成具有层次的组件结构。把容器放到另一个容器中,从而形成具有层次的组件结构。
8、 3、AWT提供了的容器类有:提供了的容器类有:Frame类、类、Dia1og类和类和Panel类类。除了除了AWT提供的容器外,提供的容器外,Applet类也是一个容器,它是类也是一个容器,它是Panel类的一个子类类的一个子类。 AWT 标准组件图示标准组件图示ObiectEventGraphicsComponentCheckboxGroupTextComponentContainerButtonTextFieldCheckboxWindowpanelAppletLabelListChoiceTextAreaDialogFrameFileDialogScrollbarCanvasColor
9、FontFlowLayoutAWT中主要类及其关系 ComponentButton, Canvas, Checkbox, Choice, Label, List, ScrollbarTextComponentTextAreaTextFieldContainerPanelWindowScrollPaneDialogFrameMenuComponentMenuBarMenuItemnAWT组件组件 java.awt包包基本组件中文名称功能Button按钮完成一个命令Checkbox复选框可以同时进行多个选择CheckboxGroup单选框只能在一组中选择一项Choice下拉式列表创建一个弹出式的选
10、择菜单List列表创建一个选择列表Menu菜单创建菜单系统TextField文本框输入单行文字Label标签在标签内绘制字符Canvas画布进行绘画TextArea多行文本框输入多行文字ScrollBar滚动条在指定的范围内选择一个值5.1.2 基本组件Button、Label、TextFieldn常用方法:常用方法:nsetSize():设置组件大小:设置组件大小nsetLocation():设置组件位置:设置组件位置nsetText():设置文字:设置文字nsetBackground():设置背景颜色:设置背景颜色n.5.1.3容器组件n由标准组件图得知,由标准组件图得知,AWT包中的类继
11、承层次:包中的类继承层次:n一部分直接从一部分直接从Object类继承,包括组件类:类继承,包括组件类:Componentn大部分基本组件从大部分基本组件从Component继承,也包括容器类:继承,也包括容器类:Containern一部分从一部分从Container继承,这些类全部是容器类组件继承,这些类全部是容器类组件n通过继承的概念得知,由父类派生出的子类都会继承父类的通过继承的概念得知,由父类派生出的子类都会继承父类的成员(包括变量和方法)成员(包括变量和方法)n所有容器类都具有的方法和变量可从所有容器类都具有的方法和变量可从Container类中了解。类中了解。(JavaAPI)na
12、dd()方法方法:frm.add(btn)nremove()方法方法:frm.remove(btn)nsetLayout()方法方法:frm.setLayout(null)子类说 明AppletPanel.Applet的扩展,使所有Applet的超类Dialog对话框(可模式化或非模式化Window的扩展)FieldDialog用于选择文件的对话框FrameWindow的扩展,应用程序的容器,可以有菜单和标题栏PanelContainer的扩展,简单的容器WindowContainer的扩展,没有菜单或边界,是Frame和Dialog的超类5.1.3 容器组件Frame类n常用方法:常用方法:
13、nsetSize():设置窗口大小:设置窗口大小nsetLocation():设置窗口位置:设置窗口位置nsetResizable():设置窗口大小是否可调整:设置窗口大小是否可调整nsetTitle():设置窗口标题:设置窗口标题nsetBackground:设置背景颜色:设置背景颜色n.5.2事件与事件处理n问题的提出:问题的提出:n到目前为止,我们的图形用户界面程序基本上没有交互到目前为止,我们的图形用户界面程序基本上没有交互能力,或者说不能对鼠标和键盘的操作做出反应,如何能力,或者说不能对鼠标和键盘的操作做出反应,如何能使界面听从指挥,就是事件处理要做的事情。能使界面听从指挥,就是事件
14、处理要做的事情。nJava事件模型事件模型基本概念基本概念n事件源:发生事件的组件。如:按钮、输入文本框、菜事件源:发生事件的组件。如:按钮、输入文本框、菜单项、窗口。单项、窗口。n事件:用户对组件的一个操作,称之为一个事件。如:事件:用户对组件的一个操作,称之为一个事件。如:单击按钮、输入文本、选择菜单、点击窗口关闭按钮单击按钮、输入文本、选择菜单、点击窗口关闭按钮n事件监听器:由实现了事件监听器接口的类创建的对象,事件监听器:由实现了事件监听器接口的类创建的对象,负责接收、解释并处理事件的对象。负责接收、解释并处理事件的对象。n事件监听器接口:规定了处理某种事件时必须实现哪些事件监听器接口
15、:规定了处理某种事件时必须实现哪些方法。方法。n在在JDK1.1之后,事件处理模型将事件源(产生事件的组之后,事件处理模型将事件源(产生事件的组件)和对事件的具体处理(利用一种称为监听器件)和对事件的具体处理(利用一种称为监听器listener的实体来对事件进行具体的处理)分开。的实体来对事件进行具体的处理)分开。n组件(事件源)都不处理自己的事件,而是将事件处理组件(事件源)都不处理自己的事件,而是将事件处理委托给一个或多个处理实体(监听器),这种事件处理委托给一个或多个处理实体(监听器),这种事件处理模型称为事件的授权处理模型。不同的类型事件,可以模型称为事件的授权处理模型。不同的类型事件
16、,可以交由不同类型的监听器去处理。交由不同类型的监听器去处理。事件机制组件组件(事件源事件源)事件监听器事件监听器事件事件对象对象(1)事件监听器注册事件监听器注册外部作用外部作用(2)生成事件对象生成事件对象(3)把事件对象传把事件对象传入事件处理器入事件处理器(3)n事件源(事件源(M)n事件监听器(事件监听器(N)n事件监听器的注册事件监听器的注册() : M.addXXXListener(N)n事件及事件类:事件及事件类:AWT对各种不同的用户操作进行分类,每对各种不同的用户操作进行分类,每一类对应于一类对应于java.awt.event包中的一个事件类。用户对组包中的一个事件类。用户
17、对组件操作时,对于不同的组件或对组件的不同操作会产生不同件操作时,对于不同的组件或对组件的不同操作会产生不同的事件对象。的事件对象。委托事件处理模型事件处理的包事件处理的包java.awt.event包,它提供AWT事件处理所需的类和接口。事件类事件事件类型类型事件名称事件名称事件说明事件说明引发情况引发情况 低级低级事件事件类类ComponentEventComponentEvent组件事件组件事件组件移动,组件大小变化组件移动,组件大小变化ContainerEventContainerEvent容器事件容器事件容器内组件的添加、删除容器内组件的添加、删除FocusEventFocusEve
18、nt焦点事件焦点事件获得焦点、失去焦点获得焦点、失去焦点InputEventInputEvent输入事件输入事件键盘输入、鼠标操作键盘输入、鼠标操作KeyEventKeyEvent键盘事件键盘事件某键按下、某键松开某键按下、某键松开MouseEventMouseEvent鼠标事件鼠标事件鼠标移动、鼠标按下鼠标移动、鼠标按下WindowEventWindowEvent窗口事件窗口事件窗口关闭、窗口图标化等窗口关闭、窗口图标化等语义语义事件事件类类ActionEventActionEvent动作命令事件动作命令事件选中菜单、按下按钮等选中菜单、按下按钮等AdjustmentEventAdjustm
19、entEvent数值调整事件数值调整事件滚动条位置改变滚动条位置改变ItemEventItemEvent选项事件选项事件列表框、选择框等选项选列表框、选择框等选项选中中TextEventTextEvent文本事件文本事件文本框的输入、修改等文本框的输入、修改等事件处理的具体过程n事件处理过程:事件处理过程:n针对某事件针对某事件(XXXEvent)创建事件监听器类,实现相应的创建事件监听器类,实现相应的事件监听器接口事件监听器接口(XXXListener)n可以不单独定义事件监听器类,而在当前类中实现该接口。当前可以不单独定义事件监听器类,而在当前类中实现该接口。当前对象就可以做为事件监听器。
20、对象就可以做为事件监听器。n事件源注册监听器对象事件源注册监听器对象(addXXXListener()n对于文本框:在文本框获得焦点后按回车键时会发对于文本框:在文本框获得焦点后按回车键时会发生生ActionEvent事件,处理此事件的过程:事件,处理此事件的过程:n主类中实现接口主类中实现接口ActionListener,实现其中的方法,实现其中的方法actionPerformed()n文本框对象注册监听器文本框对象注册监听器:addActionListener(this) n例如:例如:Text1=new TestField(“0.0”,30) Text1.addActionListene
21、r(this)说明一个事件源可能会产生多种事件,每一种事件处理都一个事件源可能会产生多种事件,每一种事件处理都需要注册监听器,因此一个事件源可能会注册多个需要注册监听器,因此一个事件源可能会注册多个监听器。监听器。f.addMouseMotionListener(this);f.addMouseListener(this);事件监听器可以实现多个事件监听器接口,此时可监事件监听器可以实现多个事件监听器接口,此时可监听处理多类事件。听处理多类事件。implements MouseMotionListener,MouseListener,WindowListenerActionEvent中的方法中
22、的方法public Object getSource()获取事件源对象获取事件源对象 event.getActionCommand(),获取组件的字符串名,获取组件的字符串名称。例如:称。例如: But1=new Button(按钮按钮1); e.getActionCommand(); e.getSource();import java.awt.*; import java.awt.event.*;class BtnListener implements ActionListener public void actionPerformed(ActionEvent e) System.out.p
23、rintln(“点击按钮”); /定义监听器类public class AWTFrameE public static void main(String args) Frame frm=new Frame(); frm.setSize(400, 300); frm.setLayout(null); Button btn=new Button(一个按钮); btn.setLocation(100, 100); btn.setSize(80,20); BtnListener bl=new BtnListener();生成监听器 btn.addActionListener(bl);添加监听器 frm
24、.add(btn); /把这个按钮加到frm窗体中 frm.setVisible(true); /显示窗体 frm.addWindowListener(new WListener(); 例:public class AWTFrameE1 extends Frame implements ActionListener Button btn=new Button(一个按钮); public AWTFrameE1() super(window test); add(btn); btn.addActionListener(this); pack(); setVisible(true); public
25、void actionPerformed(ActionEvent e) System.out.println(点击了按钮); public static void main(String args) /main方法 AWTFrameE1 af=new AWTFrameE1();public class AWTFrameE1 extends Frame implements ActionListener,WindowListener Button btn=new Button(一个按钮);public AWTFrameE1()super(window test);add(btn);btn.add
26、ActionListener(this); pack();setVisible(true);addWindowListener(this);public void actionPerformed(ActionEvent e) System.out.println(点击了按钮);public void windowClosing(WindowEvent e) System.exit(0);/退出程序 public void windowOpened(WindowEvent e) public void windowIconified(WindowEvent e) public void wind
27、owDeiconified(WindowEvent e) public void windowClosed(WindowEvent e) public void windowActivated(WindowEvent e) public void windowDeactivated(WindowEvent e)public static void main(String args) /main方法 AWTFrameE1 af=new AWTFrameE1();nJavaJava语言为一些监听接口提供了适配器语言为一些监听接口提供了适配器(Adapeter)(Adapeter)类,事件适配器类是
28、抽象类,可以通过继承事件类,事件适配器类是抽象类,可以通过继承事件所对应的所对应的AdapterAdapter类,重写需要实现的方法,无关类,重写需要实现的方法,无关方法不用实现,原因是监听器适配器类是对事件方法不用实现,原因是监听器适配器类是对事件监听器接口的简单实现(方法体为空)。监听器接口的简单实现(方法体为空)。JDKJDK中提中提供供事件适配器方式来实现事件编程。方式来实现事件编程。如:事件监听器接口相相应的事件适配器类:WindowListener -WindowAdapterWindowListener -WindowAdapter、MouseListener -MouseAda
29、pterMouseListener -MouseAdapter、MouseMotionListener-MouseMotionListener-MouseMotionAdapterMouseMotionAdapter。计算机应用技术系教师专用(JavaJava语言程序设计语言程序设计)事件适配器import java.awt.*;import java.awt.event.*;public class ProgramWithAnonymousListener extends Frame /构造方法 public ProgramWithAnonymousListener() addWindowL
30、istener(new WindowAdapter() / new关键字后带类型名 public void windowClosing(WindowEvent we) System.exit(0); ); / 整体作为addWindowListener方法的输入参数 setSize(200,200); setVisible(true); public static void main(String args) ProgramWithAnonymousListener p = new ProgramWithAnonymousListener(); 低级事件(1)ComponentEvent(组件
31、事件:组件尺寸的变化,移动)(2)ContainerEvent(容器事件:组件增加,移动)(3)WindowEvent(窗口事件:关闭窗口,窗口闭合,图标化)(4)FocusEvent(焦点事件:焦点的获得和丢失)(5)KeyEvent(键盘事件:键按下、释放)(6)MouseEvent(鼠标事件:鼠标单击,移动)事件小结高级事件封装了GUI组件的语义模式。它们没有同任何的屏幕基础的组件相连,而是与具有一定语义的事件相连。高级事件也叫语义事件。(1)ActionEvent(动作事件:按钮按下,TextField中按Enter键)(2)AdjustmentEvent(调节事件:在滚动条上移动滑块
32、以调节数值)(3)ItemEvent(项目事件:选择项目,不选择“项目改变”)(4)TextEvent(文本事件,文本对象改变)(1)ActionEvent 激活组件 ActionListener ActionPerformed(ActionEvent)常用事件:(2)ItemEvent 选择了某些项目 ItemListener ItemStateChanged(ItemEvent)(3)TextEvent 文本字段或文本区发生改变 TextListener textValueChanged(TextEvent)(4)WindowEvent 窗口收到窗口级事件 WindowListener w
33、indowClosing(WindowEvent) windowOpened(WindowEvent)5.3基本控制组件使用基本组件的使用步骤:基本组件的使用步骤:在init( )(对Java Applet而言)或Frame的构 造函数内(对Java Application而言)创建出各个组件对象并初始化其外观、状态等属性;在init( )或Frame的构造函数内调用容器的add( )分别将创建出的各个组件加入到Applet或Frame所在的容器中;在init( )或Frame的构造函数内注册其事件监听器对象。5.3.1 按钮和标签按钮n构造方法:构造方法:nButton()nButton(S
34、tring label)n常用方法常用方法npublic void setLabel(String s)npublic String getLabel()npublic void addActionListener(ActionListener a)n事件响应事件响应njava.awt.event.ActionListener(接口接口)nvoid actionPerformed(ActionEvent e)Label类nLabel类的构造方法类的构造方法nLabel():建立建立一个空的一个空的Label组件。组件。nLabel(String text):建立一个标题为:建立一个标题为tex
35、t的的Label组件,预设组件,预设标题的对齐方向为靠左对齐。标题的对齐方向为靠左对齐。nLabel(String text,int alignment)nLabel类常用的方法类常用的方法npublic String getText():获取当前标签的文本。:获取当前标签的文本。npublic void setAlignment(int alignment):将当前标签的对:将当前标签的对齐方式设置为给定参数所指定的。齐方式设置为给定参数所指定的。 可能值是可能值是 Label.LEFT,Label.RIGHT 和和 Label.CENTER。 npublic void setText(St
36、ring text):将当前标签的文本设置为:将当前标签的文本设置为指定文本。指定文本。n事件响应事件响应n不引发事件不引发事件5.3.2 文本框和文本区1 文本框(TextField)nTextField 对象表示可编辑的单行文本的文本组件。对象表示可编辑的单行文本的文本组件。nTextField类的构造方法类的构造方法nTextField():建立一个空的:建立一个空的TextField组件。组件。nTextField(int columns):建立一个空的:建立一个空的TextField组件,并设组件,并设置显示单行字数为置显示单行字数为columns。事实上组件不一定刚好能容纳。事实上
37、组件不一定刚好能容纳columns个字符,因为每个字符的宽度可能不一样。个字符,因为每个字符的宽度可能不一样。nTextField(String text):建立一个:建立一个TextField组件,并设置上组件,并设置上面的文字为面的文字为text。n TextField(String text,int columns):建立一个上面文字为:建立一个上面文字为text的的TextField组件,并设置显示字数为组件,并设置显示字数为columns。 1 文本框(TextField)nTextField类的方法类的方法n public void setText(String s)n publi
38、c String getText()n事件响应事件响应njava.awt.event.TextListener(接口接口)nvoid textValueChanged(TextEvent e)njava.awt.event.ActionListener(接口接口)nvoid actionPerformed(ActionEvent e)例:编写一个程序包含有两个按钮和一个文本输出区,其中一个按钮引起程序退出,另一个按钮在输出区显示文本,而且每次当第二个按钮被单击时交替地显示两种文本。import java.awt.*;import java.awt.event.*;public class Cl
39、ickMe extends Frame implements ActionListener private Button quit = new Button(“Quit”); / 定义成员变量 private Button click = new Button(请点击这里); private TextField text = new TextField(欢迎欢迎!,15); private boolean secondClick = false; public ClickMe() /定义构造函数 super(点击的窗口名); setLayout(new FlowLayout(); add(qu
40、it); add(click); click.addActionListener(this); quit.addActionListener(this); text.setEditable(false); add(text); pack(); setVisible(true); public void actionPerformed(ActionEvent e) / 定义方法 if (e.getSource() = quit) System.exit(0); else if (e.getSource() = click) if (secondClick) text.setText(第二次点击)
41、; else text.setText(啊,第一次点击); secondClick = !secondClick; public static void main(String args) ClickMe myFrame = new ClickMe(); 2 文本区(TextArea)nTextArea类是用来显示多行文字的,并且允许在上面编辑,类是用来显示多行文字的,并且允许在上面编辑,可以把它看成是多行的可以把它看成是多行的TextField类。类。nTextArea类的构造方法有下列五种:类的构造方法有下列五种:nTextArea():建立一个空的:建立一个空的TextArea组件,预设
42、两个滚动条都会出组件,预设两个滚动条都会出现。现。nTextArea(int rows,int columns):建立一个空的:建立一个空的TextArea组件,组件,并指定最多可显示在屏幕上的行数和列数,列数只是一个大概的值,并指定最多可显示在屏幕上的行数和列数,列数只是一个大概的值,要看里面字符的宽度和操作系统而定。预设两个滚要看里面字符的宽度和操作系统而定。预设两个滚 动条都会出现。动条都会出现。nTextArea(String text):建立一个空的:建立一个空的TextArea组件,预设两个滚组件,预设两个滚动条都会出现,但设置里面的初始文字为动条都会出现,但设置里面的初始文字为t
43、ext。如果。如果text等于等于null,则会设置为空字符串。则会设置为空字符串。nTextArea(String text,int rows,int columns):类似第二个构:类似第二个构造方法,但设置里面的初始文字为造方法,但设置里面的初始文字为text。nTextArea(String text,int rows,int columns,int scrollbars)n常用方法常用方法npublic void append(String s)npublic void insert(String s, int index)npubilc void replaceRange(Stri
44、ng s, int start, int end)n事件响应事件响应njava.awt.event.TextListener(接口接口)nvoid textValueChanged(TextEvent e)2 文本区(TextArea)5.3.3 单复选框和列表n复选框复选框(Checkbox)n创建复选框创建复选框npublic Checkbox()npublic Checkbox(String s)npublic TextField(String s, boolean state)n常用方法常用方法npublic boolean getState()npublic void setStat
45、e(boolean b)npublic void setLabel(String s)npublic String getLabel()n事件响应事件响应njava.awt.event.ItemListener(接口接口)nvoid itemStateChanged(ItemEvent e)Checkbox实例import java.awt.*;import java.awt.event.*;public class E2 extends Frame implements ItemListenerCheckbox check1,check2;TextField tf;public E2()se
46、tSize(400,300);setLayout(new FlowLayout();check1=new Checkbox(“音乐音乐”);check2=new Checkbox(绘画绘画);tf=new TextField(10);tf.setEditable(false);add(check1);add(check2);add(tf);check1.addItemListener(this);check2.addItemListener(this); setVisible(true);public E2(String s)this();setTitle(s);public void ite
47、mStateChanged(ItemEvent e)String s=null;Checkbox c;c=(Checkbox)e.getSource();if (c.getState() s=s.concat(c.getLabel(); else s=s.substring(0,s.length()-c.getLabel().length();tf.setText(s);public static void main(Stringargs) E2 f=new E2(检查框检查框); Checkbox实例(续)CheckboxGroup类nCheckboxGroup 类用于将一个类用于将一个 C
48、heckbox 按钮集组成一组。按钮集组成一组。一组中的一组中的Checkbox对象只有一个是被选中状态。对象只有一个是被选中状态。nCheckboxGroup类的构造方法类的构造方法nCheckbox():构造方法很简单,不加任何参数。:构造方法很简单,不加任何参数。n使用步骤:使用步骤:n创建创建CheckboxGroup对象,如对象,如chgn创建属于创建属于chg的的Checkbox对象,如:对象,如:nnew Checkbox(男男,chg,true)nnew Checkbox(女女,chg,true)nCheckboxGroup类的方法类的方法npublic Checkbox ge
49、tSelectedCheckbox():n获取这个复选框组中处于选中状态的获取这个复选框组中处于选中状态的Checkbox对象。如果均未选中则返对象。如果均未选中则返回回 null 。/修改上例中部分程序public class E2 extends Frame implements ItemListenerCheckbox check1,check2;CheckboxGroup chg;TextField tf;public E2()setSize(400,300);setLayout(new FlowLayout();chg=new CheckboxGroup();check1=new C
50、heckbox(音乐音乐,chg,true);check2=new Checkbox(绘画绘画,chg,false);tf=new TextField(10);tf.setEditable(false);add(check1);add(check2);add(tf);check1.addItemListener(this);check2.addItemListener(this);CheckboxGroup实例n创建列表创建列表npublic List()npublic List(int n)npublic List(int n, boolean b)n常用方法常用方法npublic void
51、 add(String s)npublic void add(String s, int n)npublic void remove(int n)npublic void removeAll()npublic int getSelectedIndex()npublic String getSelectedItem()n事件响应事件响应njava.awt.event.ItemListener(接口接口)njava.awt.event.ActionListener(接口接口)列表列表(List)ListnList 组件描述了一个文本项的滚动列表组件描述了一个文本项的滚动列表nList类的构造方法类
52、的构造方法nList():建立一个空的:建立一个空的List对象。对象。nList(int rows):建立一个空的:建立一个空的List单选对象,并设置最多可同时单选对象,并设置最多可同时显示显示rows个选项。个选项。nList(int rows,boolean multipleMode):设置最多可同时显示:设置最多可同时显示rows个选项,也可以设置是否允许使用者复选,如果个选项,也可以设置是否允许使用者复选,如果multipleMode的值为的值为true,则允许复选,反之则只允许单选。,则允许复选,反之则只允许单选。nList类的常用方法类的常用方法npublic void add
53、(String item)npublic String getSelectedItem()public String getSelectedItem() npublic String getSelectedItems()npublic void addItemListener(ItemListener l)n使用使用List类的步骤:类的步骤:n创建创建List对象。对象。n为为List对象添加选项对象添加选项修改上例修改上例List list;TextField tf;public E5()setSize(400,300);setLayout(new FlowLayout();list=ne
54、w List(5,true);list.add(高中高中);list.add(大专大专);list.add(本科本科);list.add(研究生研究生);tf=new TextField(10);tf.setEditable(false);add(list);add(tf);list.addItemListener(this);List类应用实例Choice类nChoice选项框,又称下拉列表。选项框,又称下拉列表。nChoice类的构造方法类的构造方法nChoice():建立一个空的:建立一个空的Choice组件,不含任何选项。组件,不含任何选项。nChoice类的常用方法类的常用方法npu
55、blic void add(String item)n添加一选项到添加一选项到 Choice 菜单中菜单中npublic String getItem(int index)n获得此获得此 Choice 菜单中指定索引上的字符串菜单中指定索引上的字符串npublic String getSelectedItem()n获得当前选择的字符串表示形式获得当前选择的字符串表示形式npublic void addItemListener(ItemListener l)n添加选项事件监听器添加选项事件监听器nChoice类使用的步骤类使用的步骤n创建一个创建一个Choice对象对象n增加选项到增加选项到Ch
56、oice对象中对象中n预设选择项目预设选择项目Choice实例import java.awt.*;import java.awt.event.*;public class E4 extends Frame implements ItemListenerChoice choice;TextField tf;public E4()setSize(400,300);setLayout(new FlowLayout();choice=new Choice();choice.add(党员党员 );choice.add(团员团员 );choice.add(群众群众 );tf=new TextField(1
57、0);tf.setEditable(false);add(choice);add(tf);choice.addItemListener(this);public E4(String s)this();setTitle(s);public void itemStateChanged(ItemEvent e)String s=null;s=(Choice)e.getSource().getSelectedItem();tf.setText(s);public static void main(Stringargs) E4 f=new E4( Choice实例实例);f.setVisible(tru
58、e); Choice实例(续)n创建滚动条创建滚动条npublic Scrollbar(int orientation, int value, int visible, int minimum, int maximum)n常用方法常用方法npublic void setUnitIncrement(int n)npublic void setBlockIncrement(int n)npublic int getUnitIncrement()npublic int getBlockIncrement()npublic int getValue()n事件响应事件响应njava.awt.event.
59、AdjustmentListener(接口接口)nvoid adjustmentValueChanged(AdjustmentEvent e)滚动条滚动条(Scrollbar)5.4 布局管理n布局设计布局设计nBorderLayoutnFlowLayoutnCardLayoutnGridLayoutnBoxLayoutnNull布局布局5.4.1边界布局BorderLayoutnBorderLayoutn是窗口的默认布局是窗口的默认布局n使用这种布局的容器,空间被分为东、西、南、北、中使用这种布局的容器,空间被分为东、西、南、北、中5个区域,个区域,由由BorderLayout中的中的5个静
60、态常量个静态常量EAST、WEST、SOUTH、NORTH、CENTER表示表示n添加组件时,使用表示方位的常量规定添加组件的位置添加组件时,使用表示方位的常量规定添加组件的位置nadd(b1,BorderLayout.SOUTH)n也可以使用指定的字符串表示方位:也可以使用指定的字符串表示方位:add(b1, South)n构造方法构造方法nBorderLayout()nBorderLayout(intint hgap, inthgap, int vgap)vgap) nhgap水平间隔水平间隔nvgap垂直间隔垂直间隔n使用使用BorderLayout布局管理器的步骤布局管理器的步骤n创建
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基坑支护工程竣工验收报告
- 化工企业管道维修作业安全规范
- 企业现场管理的团队协作机制
- 供配电系统验收清单
- 2026浙江杭州万丰置业有限公司招聘1人笔试题库带答案详解(黄金题型)
- 2026年哈尔滨体育学院专业技术岗位人才公开招聘6人(第一批)笔试题库带答案详解(研优卷)
- 2026西安市第七十一中学教师招聘备考题库及完整答案详解【有一套】
- 2026年安徽省政务服务中心政务热线话务员招聘备考题库及参考答案详解【基础题】
- 2026上海交通大学生命科学技术学院秦伯阳团队博士后招聘1人模拟试卷带答案详解(考试直接用)
- 2026北京中医药大学东方医院招聘社会人员1名(第七批)参考题库附参考答案详解(综合题)
- 2026不动产登记法律制度政策登记档案管理法规试题(含答案)
- 2026年社区网格员公共基础笔试考试题库及参考答案
- 2026辽控集团所属辽宁九夷能源科技有限公司招聘12人笔试参考题库及答案详解
- GB/T 47067-2026塑料模塑件公差和验收条件
- 回收公司财务管理制度
- 房屋安全鉴定服务投标方案(技术标)
- 2025年益阳市数学五下期末学业水平测试试题含答案
- 《冰心诀》全文及解释
- 准石家庄新能力科技有限公司年产1800吨XPE发泡制品项目环境影响报告表
- JJG 455-2000工作测力仪行业标准
- 医院总值班培训课件
评论
0/150
提交评论