第9章GUI补充案例

上传人:博****1 文档编号:562003460 上传时间:2022-11-11 格式:DOC 页数:49 大小:798.50KB
返回 下载 相关 举报
第9章GUI补充案例_第1页
第1页 / 共49页
第9章GUI补充案例_第2页
第2页 / 共49页
第9章GUI补充案例_第3页
第3页 / 共49页
第9章GUI补充案例_第4页
第4页 / 共49页
第9章GUI补充案例_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《第9章GUI补充案例》由会员分享,可在线阅读,更多相关《第9章GUI补充案例(49页珍藏版)》请在金锄头文库上搜索。

1、第九章GUI案例9-1 AWT事件处理机制一、案例描述1、考核知识点编号:名称:AWT事件处理机制2、练习目标? 掌握如何使用AWT事件处理机制3、需求分析事件处理机制专门用于响应用户的操作,比如,想要响应用户的点击鼠标、按下键盘等操作,就需要使用AWT的事件处理机制。为了让初学者熟悉AWT的事件处理机制,本案例将实现关闭一个窗口的功能。4、设计思路(实现原理)1)编写类 ExampleOl2)建立一个窗体,名为“第一个窗体”3) 定义一个类 MyWindowListener实现事件监听器的接口 WindowListener。4)通过addWindowListener()方法为事件源注册事件监

2、听器对象。、案例实现public class Example01 public static void main(String args) / 建立新窗体Frame f = new Frame(”第一个窗体!);/设置窗体的宽和高f.setSize(300, 300);/ 设置窗体的岀现的位置f.setLocation(300, 200);/ 设置窗体可见f.setVisible(true);/为窗口组件注册监听器MyWindowListener mw=new MyWindowListener();f.addWindowListener(mw);/ 创建 MyWindowListener 类实

3、现 WindowListener 接口 class MyWindowListener implements WindowListener /监听器监听事件对象作岀处理public void windowClosing(WindowEvent e) Window window = e.getWindow();window.setVisible(false);/释放窗口window.dispose();public void windowActivated(WindowEvent e) public void windowClosed(WindowEvent e) public void wind

4、owDeactivated(WindowEvent e) public void windowDeiconified(WindowEvent e) public void windowlconified(WindowEvent e) public void windowOpened(WindowEvent e) 运行结果如图9-1所示。图9-1第一个窗体点击窗体右上角的关闭按钮,窗体关闭。三、案例总结1、在AWT事件处理机制中几个比较重要的相关概念,具体如下所示:事件对象(Event):封装了 GUI组件上发生的特定事件(通常就是用户的一次操作)。 事件源(组件):事件发生的场所,通常就是产生

5、事件的组件。(对象中包监听器(Listener):负责监听事件源上发生的事件,并对各种事件做出响应处理的对象 含事件处理器)。事件处理器:监听器对象对接收的事件对象进行相应处理的方法。2、事件对象、事件源、监听器、事件处理器在整个事件处理机制中都起着非常重要的作用,它们彼 此之间有着非常紧密的联系,接下来用一个图例来描述事件处理的工作流程,如图9-2所示。外部动作匸一 .y尸事件对象4.接收事件对象,激活事件处理器,实现预定功能2.触发事件源上的事件事件源(组件)3.产生并传递事件对象监听器(含处理器)1.将监听器注册到事件源图9-2事件处理流程图图9-2中,事件源是一个组件,当用户进行一些操

6、作时,如按下鼠标,或者释放键盘等,这些动作会 触发相应的事件。如果事件源注册了事件监听器,则触发的相应事件将会被处理。案例9-2使用适配器类改进窗体关闭、案例描述1、考核知识点编号:名称:AWT事件适配器2、练习目标? 掌握如何使用AWT事件适配器。3、需求分析JDK提供了一些适配器类,它们是监听器接口的默认实现类,这些实现类中实现了接口的所 有方法,但方法中没有任何代码。程序可以通过继承适配器类来达到实现监听器接口的目的。为 了让初学者熟悉AWT事件适配器,本案例将使用AWT事件适配器优化窗体关闭代码。4、设计思路(实现原理)1)编写 Example02 类2)建立一个窗体,名为“第一个窗体

7、”3)定义一个 MyWindowListener 类继承适配器类 WindowAdapter。4)重写适配器类中的 windowClosing()方法、案例实现public class Example02 public static void main(String args) / 建立新窗体Frame f = new Frame(”第一个窗体! ”);/设置窗体的宽和高f.setSize(300, 300);/ 设置窗体的岀现的位置f.setLocation(300, 200);/ 设置窗体可见f.setVisible(true);/为窗口组件注册监听器f.addWindowListener

8、(new MyWindowListener();/ 继承 WindowAdapter类,重写 windowClosing() 方法class MyWindowListener extends WindowAdapter public void windowClosing(WindowEvent e) Window window = (Window) e.getComponent(); window.dispose();运行结果如图9-3所示。图9-3运行结果点击窗体右上角的关闭按钮,窗体关闭。三、案例总结在本案例中定义的MyWindowListener类继承了适配器类 WindowAdapte

9、r,同样实现了关闭窗口的功能,却减少了很多代码。需要注意的是,几乎所有的监听器接口都有对应的适配器类,通过继承适配器类 来实现监听器接口时,需要处理哪种事件,直接重写该事件对应的方法即可。由于适配器主要是为了减少 不必要的代码,所以在方法数不超过3个时候,不需要继承适配器类。案例9-3 窗体事件、案例描述1、考核知识点编号:名称:窗体事件2、练习目标? 掌握窗体事件的处理3、需求分析当对窗体进行操作时,比如窗体的打开、关闭、激活、停用等,这些动作都属于窗体事件,JDK中提供了一个类 WindowEvent用于表示这些窗体事件。为了让初学者掌握窗体事件的处理, 本案例将实现对窗体事件的监听。4、

10、设计思路(实现原理)1)编写类Example03,创建一个窗体。2)创建 WindowListener实例对象。3)通过addWindowListener()方法将窗体对象与窗体监听器绑定。4 )运行程序,对生成的窗体操作,观察控制台输出的内容。、案例实现编写Example03类,代码如下所示:public class Example03 public static void main(String args) final Frame f = new Frame(窗体事件);f.setSize(400,300); f.setLocation(300,200);f.setVisible(true

11、);/使用内部类创建 WindowListener实例对象,监听窗体事件f.addWindowListener(new WindowListener() (”窗体打开);(”窗体激活);(”窗体图标化”);public void windowDeiconified(WindowEvent e) (”窗体取消图标化); public void windowDeactivated(WindowEvent e) (”窗体停用”);public void windowClosing(WindowEvent e) (”窗体正在关闭);(Window) e.getComponent().dispose()

12、;(”窗体关闭););运行结果如图9-4所示。图9-4运行结果 从上图可以看出,当对窗口进行操作时,程序监听到了这些窗体事件。三、案例总结在本案例中,通过 WindowListener对操作窗口的动作事件进行监听,当接收到特定的动作后,就将所触发事件的名称打印出来。了解了窗体事件,在以后的编程中,可以根据实际需求,在监听器中自定义窗 体的处理事件器。案例9-4鼠标事件、案例描述1、考核知识点编号:名称:鼠标事件2、练习目标? 掌握鼠标事件的处理3、需求分析在图形用户界面中,用户会经常通过鼠标来进行选择、切换界面等操作,这些操作被定义为鼠标事件,JDK中提供了一个 MouseEvent类用于表示

13、鼠标事件。 为了让初学者熟悉鼠标事件的处理。本案例将演示如何监听鼠标事件。4、设计思路(实现原理)1)编写一个类 Example04,创建一个窗口。2)创建按钮对象,并在窗口添加按钮组件。3)为按钮添加鼠标事件监听器。4)运行程序生成窗体,用鼠标操作窗口中的按钮,观察控制台的输出。、案例实现public class Example04 public static void main(String args) final Frame f = new Frame(鼠标事件);/为窗口设置布局f.setLayout(new FlowLayout();f.setSize(300, 200);f.set

14、Location(300, 200);f.setVisible(true);Button but = new Button(按钮);/创建按钮对象f.add(but);/在窗口添加按钮组件/为按钮添加鼠标事件监听器but.addMouseListener(new MouseListener() 鼠标放开);鼠标按下);鼠标移出按钮区域);鼠标进入按钮区域);鼠标完成点击”););运行程序后生成窗体如图9-5所示。图9-5鼠标事件窗体 用鼠标点击按钮,运行结果如图9-6所示。图9-6运行结果三、案例总结除了本案例中演示的鼠标事件,MouseEvent类中定义了很多常量来标识鼠标动作,具体代码如下。public void mouseClicked(MouseEvent e) if(e.getButton()=e.BUTTON1)System.out.println(if(e.getButton()=e.BUTTON3)System.out.println(if(e.

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划

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