收藏 分销(赏)

某公司JAVA培训(第三讲)2004年7月.pptx

上传人:人****来 文档编号:4225684 上传时间:2024-08-27 格式:PPTX 页数:29 大小:209.92KB
下载 相关 举报
某公司JAVA培训(第三讲)2004年7月.pptx_第1页
第1页 / 共29页
某公司JAVA培训(第三讲)2004年7月.pptx_第2页
第2页 / 共29页
某公司JAVA培训(第三讲)2004年7月.pptx_第3页
第3页 / 共29页
某公司JAVA培训(第三讲)2004年7月.pptx_第4页
第4页 / 共29页
某公司JAVA培训(第三讲)2004年7月.pptx_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、1.Java图形类与事件响应结构简介图形类与事件响应结构简介 1.1 1.1 抽象窗口工具集抽象窗口工具集抽象窗口工具集抽象窗口工具集AWTAWT设计Java图形用户界面(GUI,Graphics User Interface)的基本元素由抽象窗口工具集(AWT,Abstract Window Toolkit)提供,主要包括用户界面组件界面组件、事件处理模型事件处理模型、图形和图像图形和图像工具工具、布局管理器布局管理器等。它们都包含于java.awt包中。AWT是Java基础类库(JFC,Java Foundation Class)的一部分。AWT为大规模的GUI开发提供了丰富的基础结构。A

2、WT支持JavaBeans体系结构,AWT组件都是“简单”的JavaBean。AWT的主要相关包如下:1.Java图形类与事件响应结构简介续图形类与事件响应结构简介续1java.awt AWT核心包,包括组件类,事件类等java.awt.event 提供事件类和监听器java.awt.color 定义颜色及其空间java.awt.font 提供各种字体java.awt.accessibility 提供辅助功能java.awt.datatransfer 提供数据传输和剪贴板功能java.awt.dnd 图形化用户之间实现拖拽功能java.awt.geom 任何软件包java.awt.im 引入方

3、法java.awt.peer 同位体组件界面java.awt.print 提供打印功能java.awt.swing AWT包的扩展,提供GUI类和接口(Java2新增)java.awt.Robot 自动检测,自动演示 1.2 Java1.2 Java图形类图形类图形类图形类java.lang.ObjectColor颜色类Font字体类Component组件类CheckBoxGroup复选框组类Image图像类MenuCoponent菜单组件类Graphics图形类BorderLayoutFlowLayoutGirdLayoutCardLayout布局类Label标签类TextComponent

4、文本组件类CheckBox复选框类Choice 选择框类List列表框类Canvas画布类ScrollBar滚动条类Container容器类Button按钮类Panel面板类Window窗口类Frame框架类Dialog对话框类Java.applet.Applet小程序类TextField文件行类TextArea文本区类FileDialog文件对话框类1.Java图形类与事件响图形类与事件响应结构简介应结构简介 续续21.Java图形类与事件响应结构简介续图形类与事件响应结构简介续3 1.3 1.3 设计和实现图形用户界面的主要工作设计和实现图形用户界面的主要工作设计和实现图形用户界面的主要工

5、作设计和实现图形用户界面的主要工作 (1)创建组件(Component)(2)指定布局(Layout)(3)响应事件(Event)MenuCoponent菜单组件类MenuItemMenuBarCheckBoxMenuItemMenuPopupMenu菜单组件的子类1.Java图形类与事件响应结构简介图形类与事件响应结构简介 续续4 1.4 1.4 容器与容器类组件容器与容器类组件容器与容器类组件容器与容器类组件(1)容器有一定范围,容器一般都是矩形,容器范围边界可以用边框框出来,有些则没有。(2)容器有一定位置,这个位置可以是屏幕四角的绝对位置,也可以是相对于其他容器边框的相对的位置。(3)

6、容器通常都有一个背景,这个背景覆盖全部容器,可以透明,也可以指定一幅特殊的图案。(4)容器中可以包含其它的许多界面成分和元素。当容器被打开显示时,它上面的成分和元素同时也被显示出来;当容器被关闭和隐藏时,它所包含的成分和元素也一起被隐藏。(5)容器可以按一定的规则来安排它所包含的元素,如这些元素的相对位置关系、它们的前后排关系等。(6)容器可以包含在其它容器中。1.Java图形类与事件响应结构简介图形类与事件响应结构简介 续续5容器类容器类的常用方法add(Component comp)将指定组件放到容器中。remove(Component comp)删除指定组件setLayout(Layou

7、tManager mgr)设置容器布局Frame类 Frame类的特点它是Window类的直接子类Frame对象显示的效果是一个窗口,带有标题和尺寸。Frame被默认初始化为不可见的,可使用setVisible(true)方法使之变成可见。默认的布局管理器是BorderLayout,可以用setLayout()方法改变其默认的布局管理器。1.Java图形类与事件响应结构简介图形类与事件响应结构简介 续续6Panel类Panel类的特点它不是顶层窗口,必须位于窗口或其他容器之内。Panel可以容纳其他组件,在程序中经常用于布局和定位。Panel的默认布局管理器是FlowLayout,可使用set

8、Layout()方法改变其默认布局管理器。Panel可以采用和所在容器不同的布局管理器。1.5 Java1.5 Java事件类事件类事件类事件类Java语言中,所有的事件都定义在包java.awt.event中,用相应的类来表达不同的事件。1.Java图形类与事件响应结构简介续图形类与事件响应结构简介续7Java.lang.Objectjava.util.EventObjectjava.awt.AWTEvent抽象事件类ComponentEvent组件事件类ItemEvent选择事件类ActionEvent按钮事件类AdjustmentEvent数值调整事件类TextEvent文本框事件类Fo

9、cusEvent焦点事件类InputEvent输入事件类ContainerEvent容器事件类WindowEvent窗口事件类KeyEvent焦点事件类MouseEvent输入事件类Java事件类层次EventObject类的主要方法public Object getSource()/获得产生事件的组件1.Java图形类与事件响应结构简介图形类与事件响应结构简介 续续8ActionEvent类的主要方法public String getActionCommand()/获得按钮的标签Java常用事件类的说明1.Java图形类与事件响应结构简介图形类与事件响应结构简介 续续9 1.6 Java1.

10、6 Java事件响应机制事件响应机制事件响应机制事件响应机制JDK1.0的层次响应模型FramePanelButton单击事件如左图所示:当事件发生时,首先生成一个事件对象,然后将事件对象传递给Button对象处理,如果Button对象没有处理该事件,则将事件对象传递给容器类(图中的Panel)对象处理,如果容器也没有处理,继续传给容器的容器(图中的Frame类)对象处理。1.Java图形类与事件响应结构简介图形类与事件响应结构简介 续续10JDK1.1以后的委托事件模型FramePanelButton单击事件如左图所示:当事件发生时,首先生成一个事件对象,然后将事件对象传递给处理该事件的类对

11、象的监听方法,由监听方法进行事件处理。为了让事件对象正确传递到响应该事件的类对象,必须在实例化Button对象时,调用该对象的注册事件监听对象方法。事件响应类对象的监听方法所有组件类都有注册事件监听对象方法,该方法的基本格式是public void add*Listener(响应该事件的对象)1.Java图形类与事件响应结构简介图形类与事件响应结构简介 续续11事件处理方法由系统预定义接口实现。接口的名称形如 *Listener 每个接口中包含1至多个事件处理方法,这些事件处理方法都是空函数,必须由完成事件处理的用户类来具体实现这些方法的代码。进行事件处理的类定义格式如下:class 类名 i

12、mplements*Listener,.实现接口*Listener中的所有方法 1.Java图形类与事件响应结构简介图形类与事件响应结构简介 续续12名字中的*,就是事件类去掉Event后英文单词。比如:事件类名 ActionEvent 则对应的注册事件监听对象方法的名称一定是 addActionListener 对应的事件处理接口名称一定是 ActionListener 事件处理接口中的方法名称是由系统预先定义的,用户不能修改它,只能在自己的事件处理类中具体实例化这些方法。所有事件响应方法如下所示。事件处理接口与方法(1)ComponentListener public void compo

13、nentMoved(ComponentEvent e)/移动组件时 public void componentHidden(ComponentEvent e)/隐藏组件时 public void componentResized(ComponentEvent e)/改变组件大小时 public void componentShown(ComponentEvent e)/显示组件时(2)ContainerListener public void componentAdded(ContainerEvent e)/添加组件时 public void componentRemoved(Containe

14、rEvent e)/移动组件时(3)WindowListener public void windowOpened(WindowEvent e)/打开窗口时 public void windowActivated(WindowEvent e)/激活窗口时1.Java图形类与事件响应结构简介图形类与事件响应结构简介 续续131.Java图形类与事件响应结构简介图形类与事件响应结构简介 续续14 public void widnowDeactivated(WindowEvent e)/窗口行动焦点时 public void windowClosing(WindowEvent e)/关闭窗口时 pu

15、blic void windowClosed(WindowEvent e)/关闭窗口后 public void windowIconfield(WindowEvent e)/最小化成图标时 public void windowDeconified(WindowEvent e)/从图标恢复窗口时(4)ActionListener public void actionPerformed(ActionEvent e)/单击按钮,文本行中单击回车键,双击列表框选择菜单项时(5)TextListener public void textValueChanged(TextEvent e)文本行、文本区中修

16、改内容1.Java图形类与事件响应结构简介图形类与事件响应结构简介 续续15(6)ItemListener public void itemStateChanged(ItemEvent e)/选择复选框、选择框,单击列表框,选中带复选框的菜单项(7)MouseMotionListener(MouseEvent)public void mouseDragged(MouseEvent e)public void mouseMoved(MouseEvent e)(8)MouseListener public void mouseClicked(MouseEvent e)/单击鼠标时 public v

17、oid mouseEntered(MouseEvent e)/鼠标进入 public void mouseExited(MouseEvent e)/鼠标离开 public void mousePressed(MouseEvent e)/鼠标按下1.Java图形类与事件响应结构简介图形类与事件响应结构简介 续续16 public void mouseReleased(MouseEvent e)/鼠标放开(9)KeyListener public void keyPressed(KeyEvent e)/按下键盘 public void keyReleased(KeyEvent e)/释放键盘 pu

18、blic void keyTyped(KeyEvent e)/敲击键盘上的键(10)FocusListener public void focusGained(FocusEvent e)/获得焦点时 public void focusLost(FocusEvent e)/失去焦点时(11)AdjustmentListener public void adjustmentValueChanged(AdjustmentEvent e)1.Java图形类与事件响应结构简介图形类与事件响应结构简介 续续17组件名称 可支持的事件Adjustable AdjustmentEventApplet Cont

19、ainerEvent,FocusEvent,KeyEvent,MouseEvent,ComponentEventButton ActionEvent,FocusEvent,KeyEvent,MouseEvent,ComponentEventCanvas FocusEvent,KeyEvent,MouseEvent,ComponentEventCheckbox ItemEvent,FocusEvent,KeyEvent,MouseEvent,ComponentEventCheckBoxMenuItem ActionEvent,ItemEventChoice ItemEvent,FocusEven

20、t,KeyEvent,MouseEvent,ComponentEventComponent FocusEvent,KeyEvent,MouseEvent,ComponentEventContainer ContainerEVent,FocusEvent,KeyEvent,MouseEvent,ComponentEventDialog ContainerEvent,WindowEvent,FocusEvent,KeyEvent,MouseEvent,ComponentEventFileDialog ContainerEvent,WindowEvent,FocusEvent,KeyEvent,Mo

21、useEvent,ComponentEventFrame ContainerEvent,WindowEvent,FocusEvent,KeyEvent,MouseEvent,ComponentEvent组件可以响应的事件1.Java图形类与事件响应结构简介图形类与事件响应结构简介 续续18组件名称 可支持的事件Label FocusEvent,KeyEvent,MouseEvent,ComponentEventList ActionEvent,FocusEvent,KeyEvent,MouseEvent,ItemEvent,ComponentEventMenu ActionEventMenuI

22、tem ActionEventPanel ContainerEvent,FocusEvent,KeyEvent,MouseEvent,ComponentEvent,PopupMenu ActionEventScrollbar ActionEventScrollPanel ContainerEvent,FocusEvent,KeyEvent,MouseEvent,ComponentEventTextArea TextEvent,FocusEvent,KeyEvent,MouseEvent,ComponentEventTextComponent TextEvent,FocusEvent,KeyEv

23、ent,MouseEvent,ComponentEventTextField ActionEvent,TextEvent,KeyEvent,MouseEvent,ComponentEventWindow ContainerEvent,WindowEvent,FocusEvent,KeyEvent,MouseEvent,ComponentEvent1.Java图形类与事件响应结构简介图形类与事件响应结构简介 续续19例例1一个多监听的例子。一个多监听的例子。1.7 Java1.7 Java事件适配器事件适配器事件适配器事件适配器用事件处理接口实现事件响应时,要求接口中的所有事件响应方法都必须被覆

24、盖。java.awt.event包中还声明了一组带Adapter标记的类,称为适配器。适配器是与接口相对应的抽象类,类中的成员函数与接口中的事件响应函数完全一样。由于适配器是类,因此在定义事件处理类时,只需要定义适配器类的派生类对象,并在派生类中重定义需要的事件处理函数。1.Java图形类与事件响应结构简介图形类与事件响应结构简介 续续20Listener接口对应的Adapter抽象类接口名称 适配器名称ComponentListener ComponentAdapterContainerListener ContainerAdapterFocusListener FocusApdapterK

25、eyListener KeyAdapterMouseListener MouseAdapterMouseMotionListener MouseMotionAdapterWindowListener WindowAdapter例例2将例将例1改造成改造成Adapter类事件处理方式类事件处理方式(演示演示)。1.Java图形类与事件响应结构简介图形类与事件响应结构简介 续续21 1.8 1.8 布局管理器布局管理器布局管理器布局管理器java组件不使用坐标这种绝对定位的形式,而使用布局管理器(layout manaer)进行相对定位,使得程序界面能够自动适应不同分辨率的屏幕。布局管理器是容器所

26、具有的特性。每一种布局管理器都指定了一套组件的放置形式,适用于不同的场合。Java的布局管理器有以下四种:(1)FlowLayout 按行布局,将组件放在容器的一行上,当一行放满后就重新起一个新行。(2)BorderLayout 东南西北中五区布局。(3)GridLayout 将容器分有大小相等的若干行乘若干列的网络,组件从左至右,从上至下依次放入网格中,每个组件占一格。这种布局方式可视为一种网格。(4)CardLayout 卡片式布局,将容器中的组件处理成一组卡片,每一时刻只显示一张卡片,可以在卡片间进行切换。1.Java图形类与事件响应结构简介图形类与事件响应结构简介 续续22默认布局管理

27、器java.awt.ComponentContainerWindowPanelFrameDialogjava.applet.AppletBorderLayoutFlowLayout1.Java图形类与事件响应结构简介图形类与事件响应结构简介 续续23FlowLayout布局管理器(1)构造方法构造方法 public FlowLayout()public FlowLayout(int align)public FlowLayout(int align,int hgap,int vgap)其中,align表示对齐方式,可以取以下三个值:FlowLayout.LEFT /左对齐 FlowLayout

28、.RIGHT /右对齐 FlowLayout.CENTER /中对齐 hgap和vgap表示水平和垂直间隔,单位为像素。1.Java图形类与事件响应结构简介图形类与事件响应结构简介 续续24(2)设置布局设置布局 例如:例如:FlowLayout flow=new FlowLayout();Frame f=new Frame();f.setLayout(flow);f.setLayout(new FlowLayout();f.setLayout(new FlowLayout(FlowLayout.LEFT);f.setLayout(new FlowLayout(FlowLayout.LEFT,

29、20,40);(3)与该布局相适应的与该布局相适应的Container类放置组件的方法类放置组件的方法 public Component add(Component comp)1.Java图形类与事件响应结构简介图形类与事件响应结构简介 续续25BorderLayout布局管理器(1)构造方法构造方法 public BorderLayout()public BorderLayout(int hgap,int vgap)(2)与该布局相适应的与该布局相适应的Container类放置组件的方法类放置组件的方法 public Component add(String pos,Component co

30、mp)public Component add(Component comp,int pos)public Component add(Component comp)/默认center位置 pos串:East,West,South,North,Center pos位置号:BorderLayout.EAST,BorderLayout.WEST,.1.Java图形类与事件响应结构简介图形类与事件响应结构简介 续续26GridLayout布局管理器(1)构造方法构造方法 public GridLayout()public GridLayout(int rows,int cols)public Gri

31、dLayout(int rows,int cols,int hgap,int vgap)(2)与该布局相适应的与该布局相适应的Container类放置组件的方法类放置组件的方法 public Component add(Component comp)1.Java图形类与事件响应结构简介图形类与事件响应结构简介 续续27CardLayout布局管理器(1)构造方法构造方法 public GardLayout()public GridLayout(int hgap,int vgap)(2)与该布局相适应的与该布局相适应的Container类放置组件的方法类放置组件的方法 public Component add(Component comp)public Component add(Component comp,String cardname)(3)翻阅卡片的方法翻阅卡片的方法 first(Container c)last(Container c)next(Container c)show(Container c,String cardname)1.Java图形类与事件响应结构简介图形类与事件响应结构简介 续续28例例3CardLayout例子例子。

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服