Java-AWT详解与用法

上传人:x**** 文档编号:131280574 上传时间:2020-05-06 格式:DOCX 页数:30 大小:2.98MB
返回 下载 相关 举报
Java-AWT详解与用法_第1页
第1页 / 共30页
Java-AWT详解与用法_第2页
第2页 / 共30页
Java-AWT详解与用法_第3页
第3页 / 共30页
Java-AWT详解与用法_第4页
第4页 / 共30页
Java-AWT详解与用法_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《Java-AWT详解与用法》由会员分享,可在线阅读,更多相关《Java-AWT详解与用法(30页珍藏版)》请在金锄头文库上搜索。

1、目录GUI 图形用户界面2AWT的基础知识2AWT的事件处理2事件处理机制2事件分类3事件监听器4事件适配器5灵活设计事件监听器类5用匿名内部类实现事件监听器7事件处理的多重运用8修改组件的默认事件处理方式9常用的AWT组件10Button11Label12TextComponent文本框13TextField13TextArea14Checkbox15Choice下拉列表框17List18Canvas19菜单19容器Container21Panel类和ScrollPane22布局管理器23BorderLayout布局管理器23FlowLayout24GridLayout25CardLayou

2、t25取消布局管理器26GUI组件上的图形操作26Graphics类与图形绘制26组件重绘27图像显示29双缓冲技术30GUI 图形用户界面AWT的基础知识AWT事件处理GUI组件上的图形操作常用的AWT组件布局管理器AWT的基础知识GUI(Graphical user interface,即图形用户界面),应用程序提供给用户操作的图形用户界面,包括菜单、窗口、按钮、工具栏、和其他各种屏幕元素。在JDK中提供了AWT和Swing两个包,用于GUI程序的设计和开发。AWT是早期版本,swing是对awt的改进,提供了更加丰富的组件和功能,掌握了awt基本上就掌握了swing示例:import j

3、ava.awt.*;public class Test1 public static void main(String args) Frame f = new Frame(第一个GUI程序);f.setVisible(true); /设置窗口可见f.setLocation(300, 300); /设置窗口的左上角坐标f.setSize(300, 250); /设置窗口的大小/f.setBounds(300, 300, 300, 250);/设置窗口的坐标和大小/f.setIconImage(image); /设置窗体左上角的图标/f.setResizable(false); /设置窗口是否可以

4、改变大小/f.setMenuBar(mb); /设置窗口的菜单栏/f.dispose(); /释放窗口及其组件的所有资源,关闭窗口,结束AWT线程程序的GUI部分由AWT线程管理,只要程序中有线程存在,则程序是不会结束的。修改程序,在程序末尾添加dispose方法的调用。AWT的事件处理事件处理机制通过GUI组件用户可以对应用程序进行各种操作,反之,应用程序可以通过各种组件来收集用户的操作信息,比如移动鼠标,按下键盘等,GUI只是提供给用户操作的图形界面,但GUI本身并不对用户的操作结果负责,比如单击按钮,程序并不知道在单击按钮时应该做出什么样的反应,如果想要单击按钮时程序响应某种功能,我们就

5、必须编写相应的程序代码。上一节的程序中在我们点击关闭按钮时并不能关闭窗口和结束程序,只能通过结束进程的方式结束。Java设计了一种专门的方式称为事件处理机制,来处理程序和用户之间的交互。在事件处理机制中需要了解3个重要的概念1、 事件:用户对组件的操作称为事件2、 事件源:发生事件的组件就是事件源3、 事件处理器:某个java类中负责处理事件的成员方法。(我们要对事件进行处理肯定是编写程序代码,当发生了某种事件,只要调用写好的程序代码即可)事件源、事件、事件处理器之间的工作关系:外部作用生成事件对象把事件对象传入事件处理器事件监听器注册组件(事件源)事件处理器事件对象2341对某个事件的处理的

6、方法必须是java中的某个类的成员方法,这个类就称为事件监听器类,一个事件监听器对象必须先跟某个事件源进行关联,关联的过程称为监听器向事件源注册监听,这样当组件发生事件时,就知道该找哪个事件监听对象中的哪个方法了。注册完后,当组件接收到外部的作用,组件就会产生事件对象,并将事件对象传递给事件处理器来处理,在事件处理器中,只要打开事件对象看事件对象中的信息就知道发生了什么样的事情和事情的一些细节,比如发生事件时鼠标的位置。事件分类事件用于描述发生了什么事情。我们根据这些事情给事件进行分类,事件对象就是事件类的实例对象。按产生事件的物理操作和GUI组件的表现效果进行分类:举例:MouseEvent

7、WindowEventActionEvent事件的基本操作,例如按钮操作,不考虑是鼠标的单击还是快捷键时就可以使用ActionEvent如果事件对应的监听器中的成员方法仅有一个,就可以称为是语义事件,是高级事件,如果事件对应的监听器中的成员方法有多种方法即事件发生的每一种情况都有对应的方法处理,就是低级事件事件监听器一个事件监听器对象负责处理一类事件,这一类事件的每一种情况的发生分别由事件监听器对象中的一个方法来具体处理在事件源和事件监听器对象中进行约定的接口类就称为事件监听器接口事件监听器接口类的名称与事件类的名称是相对应的,例如,MouseEvent事件类的监听器接口名为MouseList

8、ener。编写示例:实现关闭窗口的事件处理,讲解用不同层次的事件类型来表示同一个事件源对象。public class Test2 public static void main(String args) Frame f = new Frame(第二个GUI程序);f.setVisible(true); f.setBounds(300, 300, 300, 250);f.addWindowListener(new MyWindowListener();/注册事件监听器Button b = new Button(按钮);f.add(b);System.out.println(end);/编写事件监

9、听器类。点击关闭按钮时,调用我的事件监听器中的代码处理窗口的关闭class MyWindowListener implements WindowListenerpublic void windowOpened(WindowEvent e) public void windowClosing(WindowEvent e) / 正准备关闭时发生的事件Window w = e.getWindow();/返回哪个窗口发生的事件w.setVisible(false);w.dispose();System.exit(0);/关闭程序/e.getSource();/发生事件的来源/e.getComponen

10、t();/发生事件的组件/e.getWindow();/发生事件的窗口/上面三条调用语句就是通过不同的层次的事件类型来表示同一个事件源对象public void windowClosed(WindowEvent e) /关闭后响应的事件public void windowIconified(WindowEvent e) public void windowDeiconified(WindowEvent e) public void windowActivated(WindowEvent e) public void windowDeactivated(WindowEvent e) 总结:处理发

11、生在某个GUI组件上的XXXEvent事件的某种情况,其事件处理的通用编写流程:1、编写一个事件了XXXListerner接口的事件监听器2、XXXListener类中的用于处理该事件情况的方法中,编写处理代码3、调用组件的addxxxListener方法,将XXXListener创建的实例对象注册到GUI组件上。事件适配器为了简化事件监听器接口实现类的编程,java提供了大多数事件监听器接口的简单的实现类,称为事件适配器(Adapter)类。适配器类简单的实现了监听器接口中的所有的方法。用事件适配器来处理事件,可以简化事件监听器的编写,因为一个类只要实现了适配器的方法,就等于实现了监听器接口

12、。如果要对某类监听器的某类情况进行处理只要在适配器的处理类中覆盖处理这种事件的方法就可以了。示例:使用事件适配器来关闭窗口public class Test3 public static void main(String args) Frame f = new Frame(第三个GUI程序);f.setVisible(true); f.setBounds(300, 300, 300, 250);f.addWindowListener(new MyWindowListener();/注册事件监听器Button b = new Button(按钮);f.add(b);System.out.prin

13、tln(end);/编写事件适配器类。class MyWindowListener extends WindowAdapterpublic void windowClosing(WindowEvent e) / 正准备关闭时发生的事件Window w = e.getWindow();/返回哪个窗口发生的事件w.setVisible(false);w.dispose();System.exit(0);/关闭程序初学者使用事件适配器时的常见问题:是方法没有调用还是方法中的程序代码的执行问题。如果是没有调用,就要注意是方法名写错了,还是没有注册事件监听器。事件适配器的不足:不能在继承其他类了灵活设计

14、事件监听器类如果要在事件监听器类中访问非事件源的其他GUI组件,程序该如何编写。例如在上述的Frame中要单击button按钮来关闭窗口,即事件源是Button,但是在事件处理程序中要访问frame将框架窗口关闭。public class Test4 implements ActionListenerFrame f = new Frame(第四个GUI程序);public static void main(String args) Test4 t = new Test4();t.f.setVisible(true); t.f.setBounds(300, 300, 300, 250);Button b = new Button(按钮);t.f.add(b);b.addActionListener(t);System.out.println(

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号