10_AWT

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
事件 监听器 处理器及触发时机
keyPressed:按下某个键 keyReleased:松开某个键 KeyEvent KeyListener
事件
AWT事件分为两大类:
低级事件 高级事件
低级事件

低级事件是指基于特定动作的事件,如鼠标进入、点击、移 出、拖放,控件得到、失去焦点等。
ComponentEvent:当组件大小、位置等属性发生变化时触发此事件。 ContainerEvent:当容器里发生添加、删除组件时触发此事件。
CardLayout布局管理器
CardLayout布局管理器以时间而非空间来管
理它里面的组件,就像一副扑克,只有最上 面的一张是可见的。
绝对定位
Java也可以对控件进行绝对定位(像VB那
样),需要以下步骤:
将Container的布局管理器设成null:
setLayout(null) 往容器上加组件的时候,先调用setBounds()或 setSize()方法来先设置组件的大小、位置。或者 直接创建GUI组件时通过构造参数指定该组件的 大小、位置,然后将该组件添加到容器中。
setBounds(int x,int y,int width,int height):同时
设置组件的位置及大小。 setVisible(Boolean b):设置组件是否可见。
AWT容器
Component
add(Component c):向容器中添 加其它组件。 Component getComponentAt(int x,int y):返 回指定点的组件。 int getComponentCount():返回该容器内组 件的数量。 Component[] getComponents():返回该容器 内的所有组件。

Glue:横向、纵向同时拉伸的空白组件
Strut:横向、纵向任意一个方向上拉伸的空白组件 RigidArea:代表不可拉伸的空白组件。
AWT常用组件
AWT的常用组件






Button:按钮。 Canvas:画布。 Checkbox:多选框。 CheckboxGroup:将多个多选框组合成一组,一组只能有一个被选中,即变成 单选按钮。 Choice:下拉框。 Frame:窗口。 Label:标签。 List:列表框。 Panel:不能单独存在的容器。 Scrollbar:滑动条。 ScrollPane:带水平及垂直滚动条的容器组件。 TextArea:文本域(多行) TextField:文本框(单行)

GridBagLayout布局管理器
使用步骤如下:
创建GridBagLayout布局管理器,并指定GUI容
器使用该布局管理器。 创建GridBagConstraints对象,并设置该对象的 相关属性。 调用GridBagLayout对象的方法来建立 GridBagContaints对象和受控制组件之间的关联。 添加组件。
GridLayout
GridBagLayout CardLayout
FlowLayout
在FlowLayout布局管理器中,组件像水流一
样向某方向依次排列,遇到边界时则折回, 重头开始排列。默认情况下FlowLayout布局 管理器从左向右排列组件。 FlowLayout的三个构造器:
AWT
AWT
Abstract
Window Toolkit
它是Sun最早提供的GUI库,但功能有限,之后
又提供了Swing库,通过使用AWT和Swing提供 的图形界面组件库,Java的GUI编程非常简单, 程序只要依次创建所需的图形组件,并以合适的 方式将这些组件组织在一起,就可以开发出非常 美观的用户界面。
分割的网格,每个网格所占的区域大小相同, 当使用GridLayout布局管理器时,默认从左 至右,从上至下依次排列。
GridLayout布局管理器
GridBagLayout布局管理器
GridBagLayout布局管理器是功能最强大,但也是 最复杂的布局管理器,与GridLayout不同的是:在 GridBagLayout中,一个组件可以跨越一个或多个 网格,并可以设置各网格的大小互不相同,从而增 加了布局的灵活性。当窗口大小发生变化时, GridBagLayout也可以准确地控制窗口各部分的反 应。 为了处理GridBagLayout中GUI组件的大小,跨越性, Java提供了GridBagConstraints对象,用于与特定 的组件关联,控制该组件的大小,跨越性。
事件源就是AWT组件(我们看得到的控件),
只需要用new关键字就可以创建。 事件的产生无须程序员关心,它是由系统自 动产生的。 事件监听器是一个对象,它是事件处理中的 核心,它负责对事件的处理和响应。
事件监听器
事件监听器必须实现事件监听器接口,AWT
提供了大量的事件监听器接口用于实现不同 类型的事件监听器,用于监听不同类型的事 件。 AWT中提供了丰富的事件类,用于封装不同 组件上所发生的特定操作。 AWT的事件类都是AWTEvent类的子类,它 是EventObject类的子类。

添加组件时需指定向哪
North
West Center East
个区域中添加,不指定 则默认为中间区域。 向同一区域添加多个组 件时,后放入的组件会 覆盖先前的组件。
South
BorderLayout
思考:这种布局只能放五个组件吗?
GridLayout布局管理器
GridLayout布局管理器将容器分割成纵横线
Dialog(创建对话框)
Applet
Frame窗口
Panel容器
ScrollPane
布局管理器
布局管理器
Java为了使生成的GUI具有良好的平台无关性提供 了布局管理器这个工具来管理组件在容器中的布局, 而不直接设置组件的位置与大小。 AWT提供的布局管理器:

FlowLayout BorderLayout*
中按回车时触发此事件。 AdjustmentEvent:在滚动条上移动滑块时触发。 ItemEvent:当选中或取消选中某个选项时触发。 TextEvent:当文本框里的文本发生改变时触发。
事件、监听器、处理器
事件 ActionEvent 监听器 ActionListener 处理器及触发时机 actionPerformed:按钮、文本框、菜单项被单击 时 adjustmentValueChanged:滑块位置发生改变时 componentAdded:向容器中添加组件时 componentRemoved:从容器中删除组件时 FocusListener focusGained:组件得到焦点时 AdjustmentE AdjustmentListener vent ContainerEv ent FocusEvent ContainerListener
FlowLayout():使用默认方式创建管理器。 FlowLayout(int align):使用指定对齐方式创建管
理器。 FlowLayout(int align,int hgap,int vgap):使用指 定对齐方法、垂直、水平间距创建管理器。
BorderLayout布局
BorderLayout将容器分 为EAST、SOUTH、 WEST、NORTH、 CENTER五个区域,普 通组件可以放面任意一 个区域中。 注意事项:
事件处理器
事件处理的HelloWorld
事件和事件监听器
当外部动作在AWT组件上进行操作时,系统
会自动生成事件对象,这个事件对象是 EventObject子类的实例,该事件对象会自动 触发注册到事件源上的事件监听器。 AWT事件机制涉及到三个成员:
事件源
事件 事件监听器
事件和事件监听器
focusLost:组件失去焦点时
ComponentE ComponentListener vent componentHidden:组件被隐藏时 componentMoved:组件被移动时 componentResized:组件大小改变时 componentShown:组件被显示时
事件、监听器、处理器
高级事件
是基于语义的事件,它可以不和特定的动作
相关联,而依赖于触发此事件的类。如:在 TextField中按回车会触发ActionEvent事件, 滑动滚动条会触发AdjustmentEvent事件,选 中项目列表的某一条就会触发ItemEvent事件。
ActionEvent:当按钮、菜单被单击,TextField
WindowEvent:当窗口状态发生改变时触发。(打开、关闭、最大
化、最小化等) FocusEvent:当组件得到焦点或失去焦点时触发此事件。 KeyEvent:当键盘进行按下、松开、单击时触发此事件。 MouseEvent:当鼠标进行单击、双击、按下、抬起、移动等动作时 触发此事件。 PaintEvent:当组件调用update/paint方法在屏幕上绘制自身时触发 此事件。
BoxLayout布局管理器
BoxLayout布局管理器是Swing中引入的一种布局管 理器,它保留了GridBagLayout的很多优点,又没 有那么复杂。 BoxLayout布局管理器没有提供设置间距的构造器 和方法,它使用Glue(橡胶)、Strut(支架)、 RigidArea(刚性区域)的组件来控制组件间的距离。
AWT
Object
Button
TextField
Component
MenuBar
List MenuComponent Contaniner Menu Others... MenuItem
AWT容器
菜单 文本框 工具栏
图像
文字
AWT容器
任何窗口都可以被
分解成一个空的容器,容 器里装了大量的基本组件,由它们组成了整 个窗口。 对程序员来说,开发图形界面就像小时候玩 的拼图游戏:容器是母板,控件是图块,把 它们以特定的方式拼装成我们想要的样子。
给各个组件加上事件的处理机制。 在事件处理过程中,主要涉及3类对象:
Event Source(事件源)。 Event(事件)。
Event Listener(事件监听器)。
事件处理示意图
外部动作 事件 3生成事件对象 2触发事件源 上的事件 事件源 1.注册监 听器到事 件源组件 监听器 监听器调用事件处 理器进行响应 事件处理器 。。。 4事件源对象和事件对象 被当作参数传入监听器
AWT
当JDK1.0发布的时候,Sun提供了一个基本
的GUI类库,这个类库被希望能够在所有平 台下运行,所以AWT是窗口框架,它从不同 平台的窗口系统中抽取出共同组件,当程序 运行时,将这些组件的创建和动作委托给程 序所在的运行平台。 简单地说,AWT编写的GUI运行时,程序只 指定其位置和行为,没有提供真正的实现, JVM调用操作系统本地的图形界面来创建我 们真正看到的界面的最终结果。
对话框
对话框是Window类的子类,是一个容器类,
属于特殊组件。对话框是可以独立存在的顶 组窗口,所以用法与普通窗口几乎完全一样, 但有两点需要注意:
对话框通常是由其它窗口弹出的,即通常是有父
窗口的。 对话框有模式对话框和非模式对话框两种。
文件对话框
事件处理
事件处理
为了使图形界面能够接收用户的操作,必须
AWT容器
容器(Container)是Component的子类,因
此容器对象本身也是一个组件,具有组件的 所有性质,可以调用Component的所有方法, 常用方法:
setLocation(int x,int y):设置组件的位置。 setSize(int width,int height):设置组件的大小
AWT容器
AWT主要提供了两种主要的容器类型:
Window:可以独立存在的顶级窗口。 Panel:可作为容器容纳其它组件,但不能独立
存在,必须被添加到其它容器中(如Window, Panel,Applet)。
AWT容器
Container
Window
Panel
ScrollPane
Frame(创建窗口)
相关文档
最新文档