博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java监听器
阅读量:6670 次
发布时间:2019-06-25

本文共 2782 字,大约阅读时间需要 9 分钟。

1.原理:

  当范围对象的状态发生变化的时候,服务器自动调用监听器对象中的方法。

例如:创建一个“人”类Class Person

人拥有吃的方法public void eat(){},我们的目的就是,在这个人吃之前要提醒他洗手,所以我们就要监听这个人,不管他在什么时候吃,我们都要能够监听到并且提醒他洗手,通俗点讲这个就是监听器的作用(在吃之前提醒他洗手)。

2.组成:

//1.事件源里有事件

//2.监听器里有监听方法
//3.事件源里注册监听器,事件方法中执行监听器中的监听方法。
//4.创建事件源对象,注册监听器到事件源,执行事件方法

3.实现:

 

package com.hg.listener;public class Person {//事件源    PersonListener personListener;    public void registListener(PersonListener pListener){        this.personListener = pListener;//    }    public void run(){//事件        if (personListener!=null) {                        personListener.dorun();//事件方法中执行监听器中的监听方法        }        System.out.println("人具有跑的方法");    }    public void eat(){        if (personListener!=null) {                        personListener.doeat();        }        System.out.println("人具有吃的方法");    }}

 

package com.hg.listener;public class PersonListener {//监听器    public void dorun(){//监听方法        System.out.println("监听到了人跑的方法");    }    public void doeat(){        System.out.println("监听到了人吃的方法");    }}

 

package com.hg.listener;public class TestListener {    /**     * @param args     */    public static void main(String[] args) {        Person person = new Person();//创建事件源对象        person.registListener(new PersonListener());//注册监听器到事件源        person.run();//执行事件方法        person.eat();    }}

 4.案例:监听window窗口的事件监听器

 

package me.gacl.listener.demo;import java.awt.Frame;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;public class Demo1 {    /**     *java的事件监听机制     *1、事件监听涉及到三个组件:事件源、事件对象、事件监听器     *2、当事件源上发生某一个动作时,它会调用事件监听器的一个方法,并在调用该方法时把事件对象传递进去,     *    开发人员在监听器中通过事件对象,就可以拿到事件源,从而对事件源进行操作。     */    public static void main(String[] args) {                Frame f = new Frame();        f.setSize(400, 400);        f.setVisible(true);                //注册事件监听器        f.addWindowListener(new WindowListener(){            public void windowActivated(WindowEvent e) {                            }            public void windowClosed(WindowEvent e) {                            }            /**             * 当window窗体关闭时就会WindowListener这个监听器监听到,             * 监听器就会调用windowClosing方法处理window窗体关闭时的动作             */            public void windowClosing(WindowEvent e) {                //通过事件对象e来获取事件源对象                Frame f = (Frame) e.getSource();                System.out.println(f+"窗体正在关闭");                f.dispose();            }            public void windowDeactivated(WindowEvent e) {                            }            public void windowDeiconified(WindowEvent e) {                            }            public void windowIconified(WindowEvent e) {                            }            public void windowOpened(WindowEvent e) {                            }        });    }}

 

 

 

 

 

 

转载于:https://www.cnblogs.com/BelieveFish/p/10286603.html

你可能感兴趣的文章
关于查询扩展版ESI高被引论文的说明
查看>>
亚信安全与成都市政府达成战略合作
查看>>
SSH::Batch,在公有云中使用 ssh 工具箱
查看>>
“外围”消亡 企业安全防护需要新形态
查看>>
红杉计越:AI、大数据、SaaS、云计算为何在中国一体迸发?
查看>>
阿里张勇:数据驱动的透明是平台治理的基础
查看>>
ActiveMQ - JMS,Transport,Persistence
查看>>
互联网大数据支撑生态银行建设
查看>>
视频会议系统迎来第四次浪潮
查看>>
报告显示:被调研中国企业超85%已从数字转型中获得回报
查看>>
东方日升拉美光伏电站项目 将进入首期施工
查看>>
软件探索性测试 笔记二
查看>>
将来也不会被破译的分布式存储系统
查看>>
光伏电站或成辅助服务市场“输家”
查看>>
今年光伏“领跑者”计划将升级扩围
查看>>
Java程序运行超时后退出或进行其他操作的实现
查看>>
手把手教你启用RemoteFX以及Hyper-V GPU卸载
查看>>
《交互式程序设计 第2版》一3.10 更进一步
查看>>
英伟达发布Tesla P4&P40两款基于Pascal架构的深度学习芯片
查看>>
《ANSYS Workbench有限元分析实例详解(静力学)》——2.5 Windows界面相应操作
查看>>