编写图形用户界面.ppt
《编写图形用户界面.ppt》由会员分享,可在线阅读,更多相关《编写图形用户界面.ppt(78页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第9 9章章 编写编写JAVAJAVA图形界面图形界面主要内容主要内容n了解了解Java的的GUI类类n研究研究AWT和和Swing组件之间的区别组件之间的区别n创建创建GUI窗口窗口n使用布局管理器使用布局管理器n处理处理GUI事件事件n使用按钮、标签、文本框、面板和菜单使用按钮、标签、文本框、面板和菜单n将将AWT转化为转化为Swing了解了解JavaJava的的GUIGUI类类GUI(Graphics User Interface)按钮、复选框、标签和其他简单组件文本域、滑动条以及其他复杂的组件下拉菜单和弹出菜单窗口、对话框和Applet窗口AWTAWT和和SwingSwing组件组件
2、AWT:抽象窗口工具集:抽象窗口工具集(Abstract Window Tools),Java的早期版本,组件种类有限,的早期版本,组件种类有限,java.awt.*(Label)Swing:重写:重写AWT,扩充的,扩充的AWT,40多个组件,多个组件,是是AWT的的4倍,倍,javax.swing.*(JLabel)1.AWT的概述的概述:用于图形用户界面的开发。用于图形用户界面的开发。AWT中的主要软件包中的主要软件包:使用使用AWTAWT类类2.AWT2.AWT的分类的分类:1.1.基本组件:基本组件:基本组件是图形界面的最小单位,里面不再包含其基本组件是图形界面的最小单位,里面不再包
3、含其他的成分。他的成分。如:按钮如:按钮ButtonButton、复选框复选框Checkbox Checkbox、组合框、组合框Choice Choice、列表、列表ListList、文本域、文本域 Textfield Textfield、多行文、多行文本域本域TextareaTextarea、静态文本、静态文本LabelLabel、滚动条、滚动条ScrollbarScrollbar等。等。2.2.包容器(包容器(ContainerContainer):包容器是一种特殊的组件,用来包含其他组件。包容器是一种特殊的组件,用来包含其他组件。如:面板如:面板PanelPanel、窗口、窗口 Wind
4、ows Windows、对话对话框框DialogDialog、文件文件对话对话框框 Filedialog Filedialog、框架、框架FrameFrame等。等。使用使用AWTAWT类类3.AWT组件的类层次组件的类层次:ComponentComponent类的主要方法有:类的主要方法有:lvoid enable()void enable():使组件可用。:使组件可用。lvoid disable()void disable():使组件不可用。:使组件不可用。lvoid show()void show():显示组件。:显示组件。lvoid paint()void paint():绘制图形。:
5、绘制图形。lvoid repaint()void repaint():刷新。:刷新。所有的所有的UIUI组组件都可件都可继继承或重承或重载载以上方法。以上方法。ContainerContainer类的主要方法:类的主要方法:lvoid add(Component c)void add(Component c):将指定组:将指定组件件c c加入到容器中。加入到容器中。lvoid SetLayout()void SetLayout():设置布局管理器:设置布局管理器 所有的包容器组件都可继承或重载所有的包容器组件都可继承或重载以上方法。以上方法。使用使用AWTAWT类类Java的的 GUI设设 计
6、计 既既 可可 用用 于于 Java Application,也可用于也可用于Java Applet。Java的的GUI设计包括以下方面:设计包括以下方面:界面上放置哪些组件,界面上放置哪些组件,这些组件以什么样的布局放置。这些组件以什么样的布局放置。如何如何进进行事件行事件处处理。理。使用使用AWTAWT类类框架窗口组件(框架窗口组件(Frame):):FrameFrame是是独独立立于于浏浏览览器器的的可可独独立立运运行行的的主主窗窗口口,通通常常用用于于进行开发桌面应用程序。进行开发桌面应用程序。FrameFrame拥拥有有边边界界和和标标题题栏栏设设置置,其其大大小小可可以以进进行行设
7、设置置调调整整。FrameFrame里里面面需需要要加加入入组组件件,也也可可以以加加入入菜菜单单,或或在在上上面面绘绘图。图。pFrameFrame的创建:的创建:(1)Frame()(1)Frame():创建一个没有窗口标题的窗口框架;:创建一个没有窗口标题的窗口框架;(2)Frame(String)(2)Frame(String):创建一个指定窗口标题的窗口框架。:创建一个指定窗口标题的窗口框架。窗口窗口importjava.awt.*;publicclassFrame1extendsFramepublicFrame1()this.setSize(320,150);this.setTit
8、le(“FrameExample);this.setVisible(true);publicstaticvoidmain(Stringargs)Frame1nowFrame=newFrame1();窗口窗口标签组件(标签组件(Label):):标签组件显示的是静态文本,在通常情况下是不能标签组件显示的是静态文本,在通常情况下是不能编辑的,能起到提示的作用。编辑的,能起到提示的作用。pLabelLabel的创建:的创建:Label Label组件有三种构造函数:组件有三种构造函数:(1)Label(1)Label():创建空的标签;():创建空的标签;(2)Label(2)Label(Strin
9、gString):创建一个带初始字符串的标签;):创建一个带初始字符串的标签;(3)(3)LabelLabel(StringString,intint):创创建建一一个个带带初初始始字字符符串串及及指指定定对对齐齐方式的标签。方式的标签。其其中中对对齐齐方方式式有有几几种种形形式式:LeftLeft(Label.LEFTLabel.LEFT)、RightRight、CenterCenter。LabelLabel默认对齐方式为左对齐。默认对齐方式为左对齐。标签组件(标签组件(LabelLabel)标签组件(标签组件(Label):):pLabelLabel的主要方法的主要方法:标签组件(标签组件
10、(LabelLabel)Label示例示例LabelExample.javaimportjava.awt.*;publicclassLabelExampleextendsFramepublicLabelExample()this.setLayout(newGridLayout(5,1);/网格布局Labell1=newLabel();/创建空的标签this.add(l1);l1.setText(no1);/设置标签内容Labell2=newLabel(no2);/创建带初始内容的标签this.add(l2);Labell3=newLabel(Label.LEFT,Label.LEFT);/左对
11、齐this.add(l3);标签组件(标签组件(LabelLabel)Label示例示例LabelExample.javaLabell4=newLabel(Label.RIGHT,Label.RIGHT);/居中this.add(l4);Labell5=newLabel(Label.CENTER,Label.CENTER);/右对齐this.add(l5);this.setSize(320,150);this.setTitle(LabelExample);this.setVisible(true);publicstaticvoidmain(Stringargs)LabelExamplez=ne
12、wLabelExample();标签组件(标签组件(LabelLabel)标签组件(标签组件(LabelLabel)文文本本域域一一般般用用来来让让用用户户输输入入如如姓姓名名、信信用用卡卡号号这这样样的的信信息息,它它是是一一个个能能够够接接收收用用户户的的键键盘盘输输入的小块区域。入的小块区域。p文本域的创建:1.TextField():创建空的文本域。2.TextField(int):创建具有指定长度的文本域。3.TextField(String ):创建带有初始文本内容的文本域。4.TextField(String,int):创建带有初始文本内容并具有指定长度的文本域。文本域文本域(T
13、extField)(TextField)p文本域的主要方法文本域的主要方法:文本域文本域(TextField)(TextField)TxtExample.javaTxtExample.javaimportjava.awt.*;public class TxtExample extends Frame TextField tf1,tf2,tf3,tf4;public TxtExample()this.setLayout(new FlowLayout();tf1=new TextField();/空的文本域tf2=new TextField(20);/长度为20的空的文本域tf3=new Text
14、Field(你好);/带有初始文本内容的文本域tf4=new TextField(你好,30);/带有初始文本内容并具有指定长度的文本域this.add(tf1);this.add(tf2);this.add(tf3);this.add(tf4);this.setSize(320,150);this.setTitle(Label Example);this.setVisible(true);public static void main(String args)TxtExample txt=new TxtExample();文本域文本域(TextField)(TextField)是是一一种种交
15、交互互能能力力强强而而交交互互方方便便的的控控件件,这这个个组组件件提提供供了了“按按下下并动作并动作”的基本用户界面。的基本用户界面。p创建创建:(1)Button()(1)Button():建立一个没有标示字符串的新按钮类对象。:建立一个没有标示字符串的新按钮类对象。(2)Button(String label)(2)Button(String label):建立一个标示字符串为:建立一个标示字符串为labellabel的新按钮的新按钮。p按钮的主要方法:按钮的主要方法:按钮(按钮(Button)Button)importjava.awt.*;publicclassButtonExampl
16、eextendsFramepublicButtonExample()this.setLayout(newFlowLayout();Buttonbutton1=newButton();button1.setLabel(button1);Buttonbutton2=newButton(button2);this.add(button1);this.add(button2);this.setSize(320,150);this.setTitle(ButtonExample);this.setVisible(true);publicstaticvoidmain(Stringargs)ButtonExa
17、mpleb=newButtonExample();按钮(按钮(Button)Button)事件事件是用户已经采取了某些操作的信号是用户已经采取了某些操作的信号也是也是MouseEvent,WindowEvent,ActionEvent之类之类的实例的实例事件处理事件处理事件源事件源事件监听器事件监听器事件处理三要素事件处理三要素事件源、事件类型、事件监听器为事件处理的三要素。事件源、事件类型、事件监听器为事件处理的三要素。1.事件源事件源 事件源是一个事件的产生者,如按钮、窗事件源是一个事件的产生者,如按钮、窗口、文本域等等。口、文本域等等。2.事件类型事件类型 Java中所有的事件都封装成一
18、个类,这中所有的事件都封装成一个类,这些事件类被集中在包和包中,所有的事件类均继承些事件类被集中在包和包中,所有的事件类均继承了了AWTEvent类,所有的事件类均继承了一个方法类,所有的事件类均继承了一个方法getSouce()方法,该方法返回发生事件的对象。方法,该方法返回发生事件的对象。3.事件监听器事件监听器 不同的类型事件发生后,由事件监听不同的类型事件发生后,由事件监听器接收事件并调用相应的事件处理方法。所有的事器接收事件并调用相应的事件处理方法。所有的事件监听器实际上都是一个包中的接口,继承了接口。件监听器实际上都是一个包中的接口,继承了接口。不同事件类型的监听器具有不同的方法。
19、不同事件类型的监听器具有不同的方法。事件处理事件处理l事件处理模型事件处理模型:事件被送往产生这个事件的组件,每一个组件注册一事件被送往产生这个事件的组件,每一个组件注册一个或多个称为监听器的类,这些类包含事件处理器,个或多个称为监听器的类,这些类包含事件处理器,用来接收和处理这些事件。采用这种方法,事件处理用来接收和处理这些事件。采用这种方法,事件处理器可以安排在与源组件分离的对象中。器可以安排在与源组件分离的对象中。l监听器监听器就是实现了就是实现了Listener接口的类。接口的类。实现实现Listener接口的类可以被注册为一个监听器。接口的类可以被注册为一个监听器。l事件是只向注册的
20、监听器报告的对象。每个事件都有事件是只向注册的监听器报告的对象。每个事件都有一个对应的监听器接口,一个对应的监听器接口,事件处理事件处理在在Button对象上用鼠标进行点击时,将发送一个对象上用鼠标进行点击时,将发送一个ActionEvent事件。事件。这个这个ActionEvent事件会被使用事件会被使用addActionListener()方法方法进行注册的所有进行注册的所有ActionListener的的actionPerformed()方法方法接收。接收。ActionEvent类的类的getActionCommand()方法返回与动作方法返回与动作相关联的命令名称。以按钮的点击动作为例
21、,将返回相关联的命令名称。以按钮的点击动作为例,将返回Button的标签。的标签。事件处理事件处理事件处理事件处理包含包含GUI事件处理的应用程序必须由以下几个步骤:事件处理的应用程序必须由以下几个步骤:l第一步,程序加入包。第一步,程序加入包。Import;l第二步,给所需的事件源对象注册事件监听器。第二步,给所需的事件源对象注册事件监听器。事件源对象事件源对象.addXXXListener(XXXListener););如果所在的容器主类已经实现了相应的事件监听器如果所在的容器主类已经实现了相应的事件监听器接口,即接口,即class XXXX extends YYYYYY implemen
22、ts ZZZListener则则addXXXListener()的参数为()的参数为this,否则需新建,否则需新建一个一个XXXListener类或其继承类。类或其继承类。l第三步,实现相应的方法。如果某个监听器接口第三步,实现相应的方法。如果某个监听器接口包含多个方法,则需要实现所有的方法。包含多个方法,则需要实现所有的方法。事件处理事件处理l点击按钮所发生的事件为动作事件,这是一种最点击按钮所发生的事件为动作事件,这是一种最常用的事件处理。常用的事件处理。l动作事件对应的事件类是动作事件对应的事件类是ActionEvent类,该类类,该类的主要方法见下图:的主要方法见下图:事件处理事件处
23、理-按钮点击ActionListener的主要方法的主要方法:实现动作事件的操作过程是:实现动作事件的操作过程是:第一步,注册动作事件监听器第一步,注册动作事件监听器addActionListener(ActionListener)。第二步,实现第二步,实现ActionListener接口的方法:接口的方法:actionPerformed(ActionEvent e)。事件处理事件处理-按钮点击实现过程:实现过程:1修改ButtonExample,变成监听器publicclassButtonExampleextendsFrameimplementsActionListener2添加监听器,ad
24、dActionListenerbutton1.addActionListener(this);button2.addActionListener(this);3添加事件接口方法,actionPerformed(ActionEvente)publicvoidactionPerformed(ActionEvente)/TODOAuto-generatedmethodstubif(e.getSource()=button1)System.out.println(button1hasbeenpressed);if(e.getSource()=button2)System.out.println(but
25、ton2hasbeenpressed);事件处理事件处理-按钮点击窗口关闭需要响应窗口事件的接口命令WindowListener1修改ButtonExample,变成窗口监听器publicclassButtonExampleextendsFrameimplementsActionListener,WindowListener2添加监听器,addActionListenerthis.addWindowListener(this);3添加事件接口方法publicvoidwindowActivated(WindowEvente)publicvoidwindowClosed(WindowEvente)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编写 图形 用户界面
限制150内