网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.jdk1.5中RowSet子接口教程.
.Servlet 技术.
.Spring系列第2部分:当Hibernate遇.
.关闭和释放 JDBC 资源.
.基础篇:数组.
.实例讲解:Java中的SOAP技术.
.EJB 3.0开发指南之消息驱动Bean.
.Java套接字实现网络编程之基础篇.
.技术原型法:软件技术难点不等于.
.Hibernate使用外部Connection的问.
.循序渐进学习Junit.
.Java性能.
.Java咖啡馆(9)——一个压缩归档实.
.关于JAVA import 的一个小问题.
.Decorator模式中遭遇继承与聚合的.
.javazip_src_0.8alpha源代码发布.
.想要开始为Java手机开发应用程序.
.java设计模式之创建模式--single.
.Java学习之ArrayList(动态操纵数.
.文件下载程序中文件名过长的问题.

Java基础:看看流行的和过时的鼠标事件

发表日期:2008-1-5


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的适配器。有了适配器你就不必调用接口中每个方法了。 取而代之,你只需简单的扩展适配器并重写你要监听的方法就可以了。

假如你还是很迷惑,再看看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 mouseClicked(MouseEvent e)

{

System.out.println("moused clicked");

}

public void mouseReleased(MouseEvent e)

{

System.out.println("mouse released");

}

public void mouseEntered(MouseEvent e)

{

System.out.println("mouse entered");

}

public void mouseExited(MouseEvent e)

{

System.out.println("mouse exited");

}

}

// MouseMotionHandler is an inner class that implements the MouseMotionListener.

// Each method simply prints out a message to the command line.

private class MouseMotionHandler implements MouseMotionListener

{

public void mouseMoved(MouseEvent e)

{

System.out.println("mouse moved");

}

public void mouseDragged(MouseEvent e)

{

System.out.println("mouse dragged");

}

}

public static void main(String[] args)

{

new MouseTest().show();

}

}



这个应用程序建立了一个窗口和一个按钮。当你移动鼠标并按下按钮时,应用程序就会在命令行打印出文本消息,让你看到鼠标响应和事件间的对应关系。  


上一篇:设计模式之创建模式 人气:742
下一篇:Hibernate 连Tomcat数据源配置 人气:1142
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐