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

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

首先,我们介绍一下监听器的分类。无聊时,可以打开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。想到得到正确值,要在另外两个监听方法中使用。

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





你可能感兴趣的:(活动,F#,UP)