快速业务通道

java的鼠标事件 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-25

java的鼠标事件

时间:2007-05-30 javaworld

MouseListener 方法接口中的mouseClicked() 方法和mousePressed() 方法有什么区别

这是一个热门的话题,让我们来深入的找寻答案,Java’s AWT 库提供了两个接口来监听和接收鼠标事件. 一个是 java.awt.event.MouseListener: public interface MouseListener extends EventListener    {    public void mousePressed(MouseEvent e);    public void mouseReleased(MouseEvent e);    public void mouseClicked(MouseEvent e);    public void mouseEntered(MouseEvent e);    public void mouseExited(MouseEvent e);   }

另一个是 java.awt.event.MouseMotionListener:

     public interface MouseMotionListener extends EventListener    {    public void mouseDragged(MouseEvent e);    public void mouseMoved(MouseEvent e);   }

Swing 提供了 MouseInputListener, 这个接口的同时扩展了MouseMotionListener 和MouseListener 接口.

让我们来看看这些接口中的方法:

mousePressed() 当用户按下鼠标按钮时发生.  

mouseReleased() 当用户松开鼠标按钮时发生.

mouseClicked() 当用户按下并松开鼠标按钮时发生. 用户在选择或双击图标的时候通常会点击鼠标按钮. 用户如果在松开鼠标之前移动鼠标,点击不会导致鼠标相应事件出现.  

因为点击鼠标是按下鼠标和松开鼠标的结合, 在事件分配给 mouseClicked() 方法之前, mousePressed() 和 mouseReleased() 方法已同时被调用.  

mouseEntered() 当鼠标离开当前组件并进入你所监听的组件时激活事件.

mouseExited() 当鼠标离开你所监听的组件时发生.  

mouseDragged() 当用户按下鼠标按钮并在松开之前进行移动时发生.在mouseDragged() 后松开鼠标不会导致mouseClicked().  

mouseMoved() 当鼠标在组件上移动而 不时拖动时发生.

要监听鼠标事件就必须调用这些接口之一,或扩展一个鼠标适配器(mouse adapters) 类. AWT 提供了两种监听适配器(listener adapters): java.awt.event.MouseAdapter 和java.awt.event.MouseMotionAdapter.

Swing 为MouseInputListener提供了一个叫做javax.swing.event.MouseInputAdapter的适配器. 有了适配器你就不必调用接口中每个方法了. 取而代之, 你只需简单的扩展适配器并重写你要监听的方法就可以了.

java的鼠标事件(2)

时间:2007-05-30 javaworld

如果你还是很迷惑, 再看看API 并写个小测试程序. 有时尝试理解不同事件的最好方法different events. 我写了一个小小的应用程序来表现两种鼠标事件的区别.这里是完整的代码:

   import java.awt.*;    import java.awt.event.*;    public class MouseTest extends Frame    {    public MouseTest()    {    Button b = new Button("JavaWorld JavaQ&A");    b.addActionListener( new ActionListener() {    public void actionPerformed(ActionEvent e)    {    System.exit(0);    }    }    );    add(b,BorderLayout.NORTH);    addMouseListener(new MouseTest.MouseHandler());    addMouseMotionListener(new MouseTest.MouseMotionHandler());    }    // MouseHandler is an inner class that implements the MouseListener.    // Each method simply prints out a message to the command line.    private class MouseHandler implements MouseListener    {    public void mousePressed(MouseEvent e)    {    System.out.println("mouse pressed");    }    public void mouseClicke

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号