所谓监听,就是对主体所作出的特定动作进行监听,而监听器的任务就是执行监听从而做出相应的反应。。对于不同的动作,需要不同的监听器。
首先,我们介绍一下监听器的分类。无聊时,可以打开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”包含的资源将帮助开发者深入理解这一主题。 首先,Button在安卓中的定义是一个可点击的视图(View),通常用于显示简短的文字标签,当用户点击时会...
这个“IOS应用源码——常用的下拉动态加载.rar”压缩包文件包含了一个实现这一功能的源代码示例。让我们深入探讨一下这个主题。 下拉刷新(Pull-to-Refresh)是iOS应用中的一个核心特性,特别是在处理列表视图...
"IOS应用源码——常用的下拉动态加载.zip"是一个包含iOS应用源代码的压缩包,它可能包含了实现这种功能的具体示例和教程。 首先,下拉刷新(Pull-to-Refresh)是iOS开发中的一个关键组件,由UIRefreshControl类提供...
这个压缩包可能包含了一个简单的项目,展示了如何创建RadioButton、将它们放入RadioGroup,并添加监听器来响应用户的选择。通过学习和分析这个源码,开发者可以更好地理解RadioButton的工作原理,以及如何在实际应用...
【标题】"IOS应用源码——webView控制器的一些常用控制.zip" 涉及到的是iOS应用开发中的一个关键部分:Web视图控制器的使用。在iOS应用开发中,WebKit框架提供了一个用于展示网页内容的控件,即WKWebView,它是...
Ajax Interceptor 是一款专为谷歌浏览器(Chrome)设计的插件,它允许开发者在Ajax请求发送后和响应返回前进行干预,从而实现对AJAX请求数据的修改。这款插件对于前端开发、调试以及测试来说是一个强大的工具,特别...
这个“IOS应用源码——webView控制器的一些常用控制.rar”压缩包可能包含了关于如何在iOS应用中有效管理和控制WebView的一些示例代码和实践。让我们详细探讨一下iOS中的WebView及其常见操作。 1. **UIWebView与...
在本章节中,“Google.Android开发入门与实战第12章.Android综合案例一——RSS阅读器实例”主要聚焦于Android应用程序开发中的一个实际应用场景——构建一个RSS阅读器。这个实例将帮助初学者理解如何将Android SDK的...
- `addEventListener` 用于添加事件监听器,`removeEventListener` 用于移除。 - 事件冒泡和事件捕获是事件处理的两种模式。 7. **DOM操作**: - `getElementById`, `getElementsByClassName`, `...
在Android开发中,GridView是一种非常常用的布局控件,它允许我们以网格的形式展示数据,通常用于创建像照片墙、应用列表等多列显示的内容。在本教程中,我们将深入探讨如何在Android应用中使用GridView。 首先,...
本文将详细介绍Java监听器的基本概念、实现原理以及一个具体的示例——`ServletContextListener`。 #### 监听器概述 监听器是Java Web应用中一种特殊的组件,主要用于监听容器内发生的特定事件,并对这些事件作出...
### 学习技术 JSF必备 —— JSF标签详解 #### 1. JSF标签概述 JavaServer Faces (JSF) 是一种用于构建基于组件的用户界面的Java Web框架。它提供了一组丰富的标签库,使得开发人员能够更加高效地创建动态网页应用...
下面,我们将根据提供的标题“前端vue常用模板,学习总结”以及描述“总结的模板”,深入探讨Vue.js中的常用模板和学习要点。 一、Vue模板基础 Vue模板语言是基于HTML扩展的,它允许我们在HTML中嵌入逻辑和数据绑定...
在Java代码中,可以通过以下方式设置监听器: ```java RadioGroup radioGroup = findViewById(R.id.radio_group); radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override ...
在使用`BottomRecyclerView`时,你需要设置适配器和布局管理器,然后为自定义控件设置底部监听器,如下所示: ```java BottomRecyclerView recyclerView = findViewById(R.id.recycler_view); recyclerView....
标题“SCWCD之路——结束语”表明这是一个关于SCWCD认证学习的总结或结语。SCWCD,全称Sun Certified Web Component Developer,是Oracle(原Sun Microsystems)推出的一个Java Web开发领域的专业认证,主要考察...
这个压缩包"IOS应用源码——视频音频控制器.rar"显然包含了一个用于iOS应用的视频音频管理类或者模块的源代码。通过分析这个源码,我们可以学习到许多关于iOS平台上的多媒体处理技术。 首先,我们要了解iOS中的...
2. 创建一个处理器类,实现EasyExcel的监听器接口,如`AnalysisEventListener`,用于处理读取数据的逻辑。 3. 使用EasyExcel的`read()`方法读取Excel数据,传入文件路径和处理器实例。 4. 使用EasyExcel的`write()`...