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

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

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

[b]1、ActionListener[/b]
基本上我们最早接触的监听器就是它了。它是一个接口,只有一个方法——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();即获得事件源,我理解的是监听器加在什么组件上获得的就是哪个组件对象。

[b]2、WindowListener[/b]
这个监听器用的比较少,目前我认为对它的应用不大。我们简要的看一下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)
窗口首次变为可见时调用。

[b]3、鼠标监听器[/b]
鼠标监听器包含的内容相对较多,应用也很广泛,值得详细的研究。
鼠标监听器分为: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 拥有所有鼠标操作的动作相应,功能强大,继承它很方便,只要哦重写需要的方法即可。

[b]4、键盘监听器[/b]
从分类上来说键盘监听器比较简单——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。想到得到正确值,要在另外两个监听方法中使用。

:) 呵呵,常用的监听器以及他们的使用方法大概就这些了。。希望能帮上大家。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值