JAVA语言与编程第9章AWT组件及应用.ppt
《JAVA语言与编程第9章AWT组件及应用.ppt》由会员分享,可在线阅读,更多相关《JAVA语言与编程第9章AWT组件及应用.ppt(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java实用教程(第3版)第第9章章 AWT组件及应用组件及应用T9.1 AWT容器容器T9.2 布局管理器布局管理器T9.3 事件处理机制事件处理机制T9.4 Graphics类类T9.5 AWT绘图绘图T9.6 综合实例综合实例Java实用教程(第3版)第第9章章 AWT组件及应用组件及应用AWT中的图形元素可以分为两类:基本组件Component和容器Container。图9.1列出了AWT中的主要相应包及类之间的层次关系。图图9.1AWT的的类层类层次次结结构构Java实用教程(第3版)9.1 AWT容器容器9.1.1 Window和和FrameWindow是不依赖于其他容器而独立存在
2、的容器。Window有两个子类:Frame和Dialog。Frame带有标题,而且可以调整大小。Dialog可以被移动,但是不能改变大小。Frame有一个构造方法Frame(String title),通过它可以创建一个以参数为标题的Frame对象。Frame的add()方法向容器中加入其他组件。当Frame被创建后,它是不可见的,必须通过以下步骤使Frame成为可见的。(1)调用setSize(int width,int height)显式设置Frame的大小,或者调用pack()自动确定Frame的大小。pack()方法确保Frame容器中的组件与窗体相适用的大小。(2)调用setVisi
3、ble(true)方法使Frame成为可见。Java实用教程(第3版)9.1.1 Window和和Frame【例例9.1】创建一个Frame对象并使用Frame类的常用方法。MyFrame.javapackage org.awt;import java.awt.*;public class MyFramepublic static void main(String args)Frame fr=new Frame();fr.setTitle(This is a Frame);/设定窗体标题fr.setSize(400,300);/设定窗体的宽度为400,高度为300fr.setBackgroun
4、d(Color.green);/设定窗体的背景色为绿色fr.setLocation(300,500);/设定窗体左上角的初始位置为(300,500)fr.setResizable(false);/设定窗体为不可调整大小fr.setVisible(true);/将窗体设为可见Java实用教程(第3版)9.1.1 Window和和Frame程序运行结果如图9.2所示。图图9.2 一个一个FrameJava实用教程(第3版)9.1.2 Panel面板Panel是一个通用的容器,它没有边框或其他可见的边界,不能移动、放大、缩小或关闭,不能单独存在,只能存在于其他容器(Window或其子类)中。一个Pa
5、nel对象代表一个区域,在这个区域中可以容纳其他的组件。Panel的add()方法向Panel中添加组件。如要使Panel成为可见的,必须通过Frame或Window的add()方法把Panel添加到Frame或Window中。Frame的setBounds(int x,int y,int width,int height)方法移动组件并调整其大小,由x和y指定左上角的新位置,由width 和height指定新的大小。【例例9.2】创建4个Panel对象,并将它们添加到窗体上。Java实用教程(第3版)9.1.2 Panel程序运行结果如图9.3所示。图图9.3 窗体加窗体加载载PanelJa
6、va实用教程(第3版)9.2 布局管理器布局管理器h1.流式布局管理器流式布局管理器FlowLayout是把组件从左向右、从上向下,一个接一个的放到容器中,组件之间的缺省间隔(水平和垂直)为5个像素,缺省的组件对齐方式为居中。组件的大小由布局管理器根据组件的最佳尺寸来决定。lFlowLayout的构造方法如下:FlowLayout(int align,int hgap,int vgap)功能:参数align用来决定组件在每行中相对于容器的边界的对齐方式。可选值有:FlowLayout.LEFT(左对齐)、FlowLayout.RIGHT(右对齐)和FlowLayout.CENTER(居中对齐)
7、。参数hgap和参数vgap分别设定组件之间的水平和垂直间隙。Java实用教程(第3版)9.2 布局管理器布局管理器h2.边界布局管理器边界布局管理器BorderLayout是Window、Frame、Dialog的缺省布局管理器,它将容器分成五个区域来安排组件:North、South、East、West、Center。lBorderLayout的构造方法如下:BorderLayout(int hgap,int vgap)参数hgap和vgap分别设定组件之间的水平和垂直间隙。对于采用BorderLayout的容器,当它用add()方法添加一个组件时。可以同时指定组件在容器中的区域,如下所示。
8、void add(Component comp,Object constraints)这里的constraints是String类型,可选值为BorderLayout提供的5个常量。下面的代码把Button放在Frame的东边区域,如下所示。Frame fr=new Frame();fr.add(new Button(bt),BorderLayout.EAST);如果不指定add()方法的constraints参数,在默认的情况下把组件放在中区域。下面的代码向Frame的中间区域加入两个Button,但只有最后加入的Button是可见的,如下所示,Frame fr=new Frame();fr
9、.add(new Button(b1);fr.add(new Button(b2);fr.setSize(200,200);fr.setVisible(true);Java实用教程(第3版)9.2 布局管理器布局管理器h3.网格布局管理器网格布局管理器GridLayout是将容器分成一个个格子,按行依次排列组件,各组件大小相同。lGridLayout的构造方法如下:GridLayout(int rows,int cols,int hgap,int vgap):rows代表行数,cols代表列数,hgap和vgap规定网格之间的水平和垂直间隙。h4.卡片布局管理器卡片布局管理器CardLayou
10、t将界面看成一系列卡片,在任何时候只有其中一张卡片是可见的,这张卡片占据容器的整个区域。lCardLayout的构造方法:CardLayout(int hgap,int vgap)参数hgap表示卡片和容器的左右边界之间的间隙,参数vgap表示卡片和容器的上下边界的间隙。对于采用CardLayout的容器,当用add()方法添加一个组件时,需要同时为组件指定所在卡片的名字,如下所示:void add(Component comp,Object constraints)Java实用教程(第3版)9.3 事件处理机制事件处理机制在Java中,监听器对象是一个实现了特定监听器接口的类的实例。事件源是
11、一个能够注册监听器对象并发送事件对象的对象。用户对组件的一个操作,称之为一个事件,当事件发生时,事件源将事件对象传递给所有注册的监听器。监听器对象将利用事件对象中的信息决定如何对事件做出响应。在图9.4中,Frame是一个事件源,它可以触发键盘事件和鼠标事件等。键盘事件对应一个键盘监听器,它会在键按下和释放时响应。Frame注册了键盘监听器,所以它触发的键盘事件将被处理。对于Frame触发的鼠标事件,由于没有注册相应的鼠标监听器,所以这种事件不会被处理。图图9.4 Frame的触的触发发事件事件Java实用教程(第3版)9.3.1 AWT事件与监听器事件与监听器每个具体的事件都是某种事件类的实
12、例,事件类包括:ActionEvent、ItemEvent、MouseEvent、KeyEvent和WindowEvent等。事件类的类层次结构如图9.5所示。图图9.5 事件事件类类的的类层类层次次结结构构Java实用教程(第3版)9.3.1 AWT事件与监听器事件与监听器要处理一个对象所产生的事件,首先必须注册该对象的监听者。包按照不同的事件类型定义了11个监听器接口,每类事件都有对应的事件监听器,监听器是接口,接口中定义了事件发生时可调用的方法,一个类可以实现监听器的一个或多个接口。表9.1列出了AWT事件的监听器接口。Java实用教程(第3版)9.3.2 窗口事件窗口事件WindowE
13、vent类对应窗口事件,包括用户单击了关闭按钮,窗口得到与失去焦点,窗口最小化等。窗口事件对应的事件监听器是WindowListener。【例例9.3】一个数如果恰好等于它的因子之和,这个数就称为“完数”。运行程序,在文本框中输入数字1000,按下回车符,则将1000之内的是完数的及构成完数的因子写入到文本区里,如图9.6所示。图图9.6 求求1000之内的完数之内的完数Java实用教程(第3版)9.3.3 鼠标事件鼠标事件MouseEvent类对应鼠标事件,包括鼠标按下、释放、单击等事件。鼠标事件对应的事件监听器是MouseListener。【例例9.4】设计一个窗口,上面有一个按钮。当鼠标
14、移到按钮上时,立即隐藏该按钮;当鼠标离开按钮时,显示该按钮。运行程序,当鼠标单击“隐藏按钮”时,按钮不可见,鼠标移开时,按钮又显示在窗体上,如图9.7所示。图图9.7 隐隐藏按藏按钮钮Java实用教程(第3版)9.3.4 键盘事件键盘事件在Java中与键盘事件有关的接口和类有KeyListener、KeyAdapter及KeyEvent。其中KeyListener和KeyAdapter用于监听键盘事件的发生并将其传送到相应的事件处理方法中去,而KeyEvent主要用于提供事件发生时的有关信息。KeyListener接口能够监听的键盘事件有3种:键按下(Pressed)、键释放(Released
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 语言 编程 AWT 组件 应用
限制150内