`
天高云淡000
  • 浏览: 56093 次
  • 性别: 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。想到得到正确值,要在另外两个监听方法中使用。

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





分享到:
评论

相关推荐

    安卓Android源码——(Button与点击监听器).zip

    本压缩包文件“安卓Android源码——(Button与点击监听器).zip”包含的资源将帮助开发者深入理解这一主题。 首先,Button在安卓中的定义是一个可点击的视图(View),通常用于显示简短的文字标签,当用户点击时会...

    IOS应用源码——常用的下拉动态加载.rar

    这个“IOS应用源码——常用的下拉动态加载.rar”压缩包文件包含了一个实现这一功能的源代码示例。让我们深入探讨一下这个主题。 下拉刷新(Pull-to-Refresh)是iOS应用中的一个核心特性,特别是在处理列表视图...

    IOS应用源码——常用的下拉动态加载.zip

    "IOS应用源码——常用的下拉动态加载.zip"是一个包含iOS应用源代码的压缩包,它可能包含了实现这种功能的具体示例和教程。 首先,下拉刷新(Pull-to-Refresh)是iOS开发中的一个关键组件,由UIRefreshControl类提供...

    安卓Android源码——(RadioButton与监听).zip

    这个压缩包可能包含了一个简单的项目,展示了如何创建RadioButton、将它们放入RadioGroup,并添加监听器来响应用户的选择。通过学习和分析这个源码,开发者可以更好地理解RadioButton的工作原理,以及如何在实际应用...

    IOS应用源码——webView控制器的一些常用控制.zip

    【标题】"IOS应用源码——webView控制器的一些常用控制.zip" 涉及到的是iOS应用开发中的一个关键部分:Web视图控制器的使用。在iOS应用开发中,WebKit框架提供了一个用于展示网页内容的控件,即WKWebView,它是...

    谷歌浏览器插件—— Ajax Interceptor

    Ajax Interceptor 是一款专为谷歌浏览器(Chrome)设计的插件,它允许开发者在Ajax请求发送后和响应返回前进行干预,从而实现对AJAX请求数据的修改。这款插件对于前端开发、调试以及测试来说是一个强大的工具,特别...

    IOS应用源码——webView控制器的一些常用控制.rar

    这个“IOS应用源码——webView控制器的一些常用控制.rar”压缩包可能包含了关于如何在iOS应用中有效管理和控制WebView的一些示例代码和实践。让我们详细探讨一下iOS中的WebView及其常见操作。 1. **UIWebView与...

    Google.Android开发入门与实战第12章.Android综合案例一——RSS阅读器实例

    在本章节中,“Google.Android开发入门与实战第12章.Android综合案例一——RSS阅读器实例”主要聚焦于Android应用程序开发中的一个实际应用场景——构建一个RSS阅读器。这个实例将帮助初学者理解如何将Android SDK的...

    JS技巧——日常常用JAVASCRIPT脚本

    - `addEventListener` 用于添加事件监听器,`removeEventListener` 用于移除。 - 事件冒泡和事件捕获是事件处理的两种模式。 7. **DOM操作**: - `getElementById`, `getElementsByClassName`, `...

    android学习——GridView

    在Android开发中,GridView是一种非常常用的布局控件,它允许我们以网格的形式展示数据,通常用于创建像照片墙、应用列表等多列显示的内容。在本教程中,我们将深入探讨如何在Android应用中使用GridView。 首先,...

    JAVA监听器 绝对有用

    本文将详细介绍Java监听器的基本概念、实现原理以及一个具体的示例——`ServletContextListener`。 #### 监听器概述 监听器是Java Web应用中一种特殊的组件,主要用于监听容器内发生的特定事件,并对这些事件作出...

    学习技术 jsf必备 ————JSF标签.pdf

    ### 学习技术 JSF必备 —— JSF标签详解 #### 1. JSF标签概述 JavaServer Faces (JSF) 是一种用于构建基于组件的用户界面的Java Web框架。它提供了一组丰富的标签库,使得开发人员能够更加高效地创建动态网页应用...

    前端vue常用模板,学习总结

    下面,我们将根据提供的标题“前端vue常用模板,学习总结”以及描述“总结的模板”,深入探讨Vue.js中的常用模板和学习要点。 一、Vue模板基础 Vue模板语言是基于HTML扩展的,它允许我们在HTML中嵌入逻辑和数据绑定...

    安卓Android源码——(RadioButton与监听).rar

    在Java代码中,可以通过以下方式设置监听器: ```java RadioGroup radioGroup = findViewById(R.id.radio_group); radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override ...

    自定义控件——带底部监听的RecyclerView

    在使用`BottomRecyclerView`时,你需要设置适配器和布局管理器,然后为自定义控件设置底部监听器,如下所示: ```java BottomRecyclerView recyclerView = findViewById(R.id.recycler_view); recyclerView....

    SCWCD之路——结束语

    标题“SCWCD之路——结束语”表明这是一个关于SCWCD认证学习的总结或结语。SCWCD,全称Sun Certified Web Component Developer,是Oracle(原Sun Microsystems)推出的一个Java Web开发领域的专业认证,主要考察...

    IOS应用源码——视频音频控制器.rar

    这个压缩包"IOS应用源码——视频音频控制器.rar"显然包含了一个用于iOS应用的视频音频管理类或者模块的源代码。通过分析这个源码,我们可以学习到许多关于iOS平台上的多媒体处理技术。 首先,我们要了解iOS中的...

    java使用EasyExcel导入导出excel(csdn)————程序.pdf

    2. 创建一个处理器类,实现EasyExcel的监听器接口,如`AnalysisEventListener`,用于处理读取数据的逻辑。 3. 使用EasyExcel的`read()`方法读取Excel数据,传入文件路径和处理器实例。 4. 使用EasyExcel的`write()`...

Global site tag (gtag.js) - Google Analytics