`
天高云淡000
  • 浏览: 55003 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

监听器总结——常用监听器。。。大家一起学习

阅读更多
所谓监听,就是对主体所作出的特定动作进行监听,而监听器的任务就是执行监听从而做出相应的反应。。对于不同的动作,需要不同的监听器。

首先,我们介绍一下监听器的分类。无聊时,可以打开API,输入EventListener(所有监听器的超类)。映入眼帘的是大量的监听器接口和大量的监听器类。作为一个初学者,我在这里把常用的监听器们以及事件们总结出来,大家一起研究学习。

1、ActionListener
   基本上我们最早接触的监听器就是它了。它是一个接口,只有一个方法——actionPerformed(ActionEvent e) 一般我们继承ActionListener后实现actionPerformed后,主要的应用就是ActionEvent 了。其中最常用的方法是getActionCommand(),不解释,我简要介绍一下他的其他两个方法getWhen() paramString()。我们看实例:
  public EventDemo1()
    {
        JFrame f = new JFrame("EventDemo1");
        Container contentPane = f.getContentPane();
        JButton b = new JButton("按我有声音喔");
        b.addActionListener(this);
        contentPane.add(b);
        f.pack();
        f.show();
        f.addWindowListener(this);
    }

    public static void main(String args[])
    {
        new EventDemo1();
    }
    
    public void actionPerformed(ActionEvent e)
    {
    	System.out.println(e.getWhen());
    	System.out.println(e.paramString());
        Toolkit.getDefaultToolkit().beep();
    }


输出结果是:1295711818852
            ACTION_PERFORMED,cmd=按我有声音喔,when=1295711818852,modifiers=Button1
就是这个意思~~~。
它常用的方法还有getSource();即获得事件源,我理解的是监听器加在什么组件上获得的就是哪个组件对象。

2、WindowListener
这个监听器用的比较少,目前我认为对它的应用不大。我们简要的看一下API里的方法
void windowActivated(WindowEvent e)
          将 Window 设置为活动 Window 时调用。
void windowClosed(WindowEvent e)
          因对窗口调用 dispose 而将其关闭时调用。
void windowClosing(WindowEvent e)
          用户试图从窗口的系统菜单中关闭窗口时调用。
void windowDeactivated(WindowEvent e)
          当 Window 不再是活动 Window 时调用。
void windowDeiconified(WindowEvent e)
          窗口从最小化状态变为正常状态时调用。
void windowIconified(WindowEvent e)
          窗口从正常状态变为最小化状态时调用。
void windowOpened(WindowEvent e)
          窗口首次变为可见时调用。

3、鼠标监听器
   鼠标监听器包含的内容相对较多,应用也很广泛,值得详细的研究。
鼠标监听器分为:MouseListener  MouseMotionListener MouseMotionAdapter  MouseWheelListener MouseAdapter

MouseListener:鼠标点击进入离开事件监听器,接口,其中的方法有:
                                       void mouseClicked(MouseEvent e)
                                    鼠标按键在组件上单击(按下并释放)时调用。
                                   void mouseEntered(MouseEvent e)
                                     鼠标进入到组件上时调用。
                                   void mouseExited(MouseEvent e)
                                     鼠标离开组件时调用。
                                   void mousePressed(MouseEvent e)
                                     鼠标按键在组件上按下时调用。
                                   void mouseReleased(MouseEvent e)
                                     鼠标按钮在组件上释放时调用。
这里面用的比较多的是mouseClicked  mousePressed  mouseReleased。比如说我们做一个博客,或者数据库管理系统,要实现里面的功能,鼠标必定是不停地click;做画图板,应用mouseReleased mousePressed画图型。

MouseMotionListener:鼠标移动事件监听器,也是接口。
     方法有: void mouseDragged(MouseEvent e)
                鼠标按键在组件上按下并拖动时调用。
              void mouseMoved(MouseEvent e)
                鼠标光标移动到组件上但无按键按下时调用。

MouseMotionAdapter:鼠标移动适配器,抽象类,继承了MouseMotionListener和EventListener。方法与MouseMotionListener一样。继承MouseMotionListener后只需要重写想要应用的方法即可。

MouseWheelListener:鼠标滚轮监听器,接口。方法只有mouseWheelMoved(MouseWheelEvent e) 鼠标滚轮旋转时调用。。这里注意,方法中的参数与上面的都不一样了,
是MouseWheelEvent ,他的方法如下:
                   int getScrollAmount()
                    返回每转动一下鼠标滚轮应该滚动的单位数。
                   int getScrollType()
                    返回响应此事件时应该发生的滚动类型。
                   int getUnitsToScroll()
                    这是帮助实现常用 MouseWheelListener 的便捷方法,以使
                    ScrollPane 或 JScrollPane 的滚动量符合平台的设置。
                   int getWheelRotation()
                    返回鼠标滚轮旋转的“喀哒声”的次数。
                   String paramString()
                    返回标识此事件的参数字符串。

MouseAdapter:鼠标适配器,抽象类,它继承了MouseListener, MouseMotionListener, MouseWheelListener, EventListener 拥有所有鼠标操作的动作相应,功能强大,继承它很方便,只要哦重写需要的方法即可。

4、键盘监听器
从分类上来说键盘监听器比较简单——KeyListener和KeyAdapter.区别不解释了。下面介绍一下他们的方法。
void keyPressed(KeyEvent e)
          按下某个键时调用此方法。
void keyReleased(KeyEvent e)
          释放某个键时调用此方法。
void keyTyped(KeyEvent e)
          键入某个键时调用此方法。

键盘事件KeyEvent的常用方法:
char getKeyChar()
          返回与此事件中的键关联的字符。
int getKeyCode()
          返回与此事件中的键关联的整数 keyCode。
int getKeyLocation()
          返回产生此按键事件的键位置。 (可以把键盘上的各个按键分类,每一类对应不同的整形,这个整形数就表示位置)
static String getKeyModifiersText(int modifiers)
          返回描述修改键的 String,如 "Shift" 或 "Ctrl+Shift"。
static String getKeyText(int keyCode)
          返回描述 keyCode 的 String,如 "HOME"、"F1" 或 "A"。
boolean isActionKey()
          返回此事件中的键是否为“动作”键。

值得注意的是不同的按键要在不同的监听方法中使用。比如说up down left right这几个按键,如果在keyTyped中接收这个按键式接收不到的。只有在keyPressed和keyReleased才能接收到。
同时不同键盘事件方法也要在不同的监听方法中使用。例如: getKeyCode getKeyLocation在keyType方法中接受到的永远是0。想到得到正确值,要在另外两个监听方法中使用。

呵呵,常用的监听器以及他们的使用方法大概就这些了。。希望能帮上大家。





分享到:
评论

相关推荐

    c认证web进阶dom与bom

    监听器 更改样式 事件自增 鼠标事件 1、常用鼠标事件 2、常用键盘事件 3、常用键盘事件属性 this使用输出本身 同上 弹窗 窗口事件 1、常用鼠标事件 过程 BOM 1、BOM结构 2、window对象 3、location...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    2.2.7 Eclipse中的源代码编辑器 26 2.2.8 Eclipse的设置窗口 26 2.2.9 Eclipse中的其他视图 27 2.3 如何使用Eclipse 28 2.3.1 在Eclipse中创建自己的第一个项目 28 2.3.2 在Eclipse中编写HelloWorld程序 29 ...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    2.2.7 Eclipse中的源代码编辑器 26 2.2.8 Eclipse的设置窗口 26 2.2.9 Eclipse中的其他视图 27 2.3 如何使用Eclipse 28 2.3.1 在Eclipse中创建自己的第一个项目 28 2.3.2 在Eclipse中编写HelloWorld程序 29 ...

    学通Java的24堂课

    2.6.3 实现控件的事件监听器 43 2.6.4 运行gui程序 43 2.7 如何进行程序调试 43 2.7.1 设置断点 44 2.7.2 以调试方式运行java程序 44 2.7.3 程序调试 44 2.8 了解项目类库 45 2.9 照猫画虎——基本功训练 46 ...

    vue 地区选择器v-distpicker的常用功能

    今天给大家推荐一款好用的vue插件,地区选择器 v-distpicker ,接下来我给大家介绍一些常用的功能 1.引入插件(截图官网并解释) 2.使用插件(截图官网并解释) 就是这么简单,只需写个<v></v>标签,就会出现地区选择...

    Java典型模块

    19.2.1 设计项目的界面——文件内容查看器输入界面 19.2.2 “打开”菜单项的处理方法 19.2.3 单击列表选项的处理方法 19.3 知识点扩展——管道的访问 19.3.1 管道的访问——字节方式 19.3.2 管道的访问——字符方式 ...

    Java2游戏编程.pdf

    将带领大家一步一步学习编写Java游戏,最终打造属于自己的Java游戏。 目录: 第1篇 步入Java丛林:从Java2 API开始 第1章 Java2软件开发工具包 1.1 Java简史 1.2 为什么在游戏中使用Java 1.3 为Java准备系统...

    javaSE代码实例

    第10章 构造器——对象制造的工厂 176 10.1 基础知识 176 10.1.1 编写构造器的语法规则 176 10.1.2 访问限制修饰符与构造器 176 10.1.3 构造器与返回类型 179 10.2 创建对象 180 10.3 重载构造器 181 ...

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--模拟发短信 指定号码 短信窃听提示 |--消息机制 mesage looper |--滑动之左右滑动的两种定义 |--电话簿读取联系人信息 |--监听 |--监听之CheckBox是否选中监听 |--监听之EditText内容变化监听 |--监听之GridView...

    Android知识点及重要代码合集 word文档

    1.1掌握Android四层体系架构 5 1.2 Eclipse工程文件 5 1.3 Android项目的编译及运行过程 6 2.1 AndroidStudio中R文件的位置 7 2.2 View继承结构图 7 2.3 LinearLayout布局基本属性 7 ...23.6 手机窃听器的开发 371

    android群雄传

    第1章 Android体系与系统架构 1 1.1 Google生态系统 2 1.2 Android系统架构 2 1.2.1 Linux 3 1.2.2 Dalvik与ART 3 1.2.3 Framework 3 1.2.4 Standard libraries 4 ...13.3 实战经验总结 342

    Java开发技术大全 电子版

    14.4.7事件监听器接口和适配器类456 14.4.8作为参数的事件类456 14.4.9处理多个事件的例子463 14.5Swing组件的特性467 14.5.1Swing组件的优势467 14.5.2Swing组件的体系结构468 14.5.3使用Swing组件编写GUI的...

    Android 3D游戏开发技术宝典-OpenGL ES 2.0 (吴亚峰) 源代码

    第1章 新一代的王者——android概览 1 1.1 智能手机市场现状 1 1.1.1 五大智能手机操作系统 1 1.1.2 智能手机市场的新星 2 1.2 android平台的特点及未来的趋势 3 1.2.1 全新理念带来的体验风暴 3 ...

    案例:配置DNS服务器.pptx

    配置主DNS服务 为德雅职业学校校园网搭建一台主DNS服务器,使得校园网内的用户能够通过域名访问校园网内的所有服务器,并通过DNS服务器的转发也能使用域名访问互联网中的服务器,DNS转发器设置为61.128.192.68。...

    课件-第8章-网络安全.pptx

    —————— 课件-第8章-网络安全全文共59页,当前为第11页。 数据嗅探防范方式 数据嗅探防范方式 Internet 服务器 主机 验证、反嗅探工具 加密 数据嗅探防范方式主要有:验证、改变网络结构、反嗅探工具、加密 ...

    oracle数据库11G初学者指南.Oracle.Database.11g,.A.Beginner's.Guide

    学习效果测试——对学习效果的快速自我评估 注意——与所介绍主题相关的额外信息 章节测验——每章结束时的测验测试读者对所学知识的掌握程度。 目录 第1章 数据库基础 1.1 数据库定义 1.2 Ofacle Database 11g的...

    在Oracle网络结构解决连接问题

    最近看到好多人说到tns或者数据库不能登录等问题,就索性总结了下面的文档。 首先来说Oracle的网络结构,往复杂处说能加上加密、LDAP等等。。这里不做讨论,重点放在基本的网络结构也就是我们最常用的这种情况 三...

    cmd操作命令和linux命令大全收集

    用参数/e才可连目录下的子目录一起复制到目标地址下。 tftp -i 自己IP(用肉机作跳板时这用肉机IP) get server.exec:server.exe 登陆后,将“IP”的server.exe下载到目标主机c:server.exe 参数:-i指以二进制模式...

Global site tag (gtag.js) - Google Analytics