用于接收组件上“感兴趣”的鼠标事件(按下、释放、单击、进入或离开)的侦听器接口。(要跟踪鼠标移动和鼠标拖动,请使用 MouseMotionListener。)

旨在处理鼠标事件的类要么实现此接口(及其包含的所有方法),要么扩展抽象类 MouseAdapter(仅重写所需的方法)。

然后使用组件的 addMouseListener 方法将从该类所创建的侦听器对象向该组件注册。当按下、释放或单击(按下并释放)鼠标时会生成鼠标事件。鼠标光标进入或离开组件时也会生成鼠标事件。发生鼠标事件时,将调用该侦听器对象中的相应方法,并将MouseEvent 传递给该方法。

其包含五个方法:

1.public void mouseClicked(MouseEvent e)            鼠标按键在组件上单击(按下并释放)时调用。

2.public void mouseEntered(MouseEvent e)            鼠标进入到组件上时调用。

3.public void mouseExited(MouseEvent e)               鼠标离开组件时调用。

4.public void mousePressed(MouseEvent e)           鼠标按键在组件上按下时调用。

5.public void mouseReleased(MouseEvent e)         鼠标按钮在组件上释放时调用。

下面几个简单例子:

package cn;

import java.awt.BorderLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JTextArea;

public class MyMouseListenerText extends JFrame implements MouseListener {

private JLabel j = new JLabel("测试文本");// 用来测试的组件

private JTextArea jt = new JTextArea();

private JButton exit = new JButton("退出");

public MyMouseListenerText() {

j.addMouseListener(this);

this.add(j, BorderLayout.NORTH);

this.add(jt, BorderLayout.CENTER);

this.add(exit, BorderLayout.SOUTH);

this.setSize(500, 400);

this.setVisible(true);

this.setLocationRelativeTo(null);

exit.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

System.exit(0);

}

});

}

public static void main(String[] args) {

new MyMouseListenerText();

}

@Override

public void mouseClicked(MouseEvent e) {// 单击鼠标时执行的操作

jt.append("鼠标单击了此文本区域\n");

}

@Override

public void mouseEntered(MouseEvent e) {// 鼠标进入组件时执行的操作

jt.append("鼠标进入了此文本区域\n");

}

@Override

public void mouseExited(MouseEvent e) {// 鼠标离开组件时执行的操作

jt.append("鼠标离开了此文本区域\n");

}

@Override

public void mousePressed(MouseEvent e) {// 鼠标在组件上按下时执行的操作

jt.append("在此文本区域你按下了鼠标\n");

}

@Override

public void mouseReleased(MouseEvent e) {// 鼠标释放时执行的操作

jt.append("鼠标按键释放了\n");

}

}

另外也可以扩展抽象类 MouseAdapter,此时只需重写有用的方法。

另外还有几个重要的方法:

getX

(),

getY

()

:获取鼠标的坐标位置

getModifiers

()

:获取鼠标的左或右键

getClickCount

()

:获取鼠标被点击的次数

setCursor():控制鼠标指针的形状。如设置成漏斗:

setCursor

(

Cursor.getPredefinedCursor

(

Cursor.WAIT_CURSOR

))

java中mouselistener的用法_关于MouseListener接口的简单使用相关推荐

  1. java中arraycopy的用法_[jdk源码阅读系列]Java中System.arraycopy()的用法

    本文转载,原文链接: 3分钟了解Java中System.arraycopy的用法 - 伊万夫斯基 - 博客园  https://www.cnblogs.com/benjieqiang/p/114288 ...

  2. java中trim函数用法_深入理解jQuery.trim() 函数及trim()用法

    jQuery.trim() 函数及trim()用法详解 jQuery.trim()函数用于去除字符串两端的空白字符.该函数可以去除字符串开始和末尾两端的空白字符(直到遇到第一个非空白字符串为止).它会 ...

  3. java中next的用法_关于java iterator的next()方法的用法

    UYOU next()是java迭代器类(Iterator)的方法,获得当前游标指向的下一个元素,详细说明和应用如下:1.迭代器(Iterator)介绍 迭代器是一种设计模式,它是一个对象,它可以遍历 ...

  4. JAVA中的request用法_新手入门:介绍JSP中request属性的用法

    一.request.getParameter() 和request.getAttribute() 区别 (1)request.getParameter()取得是通过容器的实现来取得通过类似post,g ...

  5. java中nodelist的用法_我可以在Java中使用for-each遍历一个NodeList吗?

    这个问题的解决方法是直截了当的,而且幸运的是你必须实现一次. import java.util.*; import org.w3c.dom.*; public final class XmlUtil ...

  6. java中math.ceil用法_[Java教程]关于Math类的round、floor、ceil三个方法

    [Java教程]关于Math类的round.floor.ceil三个方法 0 2014-05-06 16:00:08 一.Math类这三个方法的简介 1.round():取最接近的值. 对于这个方法, ...

  7. java中compile函数用法_【转】关于java中Pattern.compile函数的相关解释

    Pattern.compile函数:Pattern Pattern.compile(String regex, int flag) flag的取值范围如下: Pattern.CANON_EQ,当且仅当 ...

  8. java中demo接人_return的用法_如何理解java中return的用法?

    C语言中return用法?(请熟练者进) return是返回值,这个返回值是和函数的类型有关的,函数的类型是什么,他的返回值就是什么 比方主函数intmain() {}这里就必须有一个return,只 ...

  9. java finally用法_深入浅析java中finally的用法

    finally作为异常处理的一部分,它只能用在try/catch语句中,并且附带一个语句块,表示这段语句最终一定会被执行(不管有没有抛出异常),经常被用在需要释放资源的情况下. 之前在写爬虫的时候数据 ...

最新文章

  1. 在MAC平台下使用Eclipse出现了中文乱码
  2. 共模干扰和差模干扰(图解)---摘自: 硬件十万个为什么
  3. HDU - 5517 Triple(三维偏序-二维树状数组/CDQ分治)
  4. UIView转UIimage
  5. BZOJ——1614: [Usaco2007 Jan]Telephone Lines架设电话线
  6. 上海电子信息职业技术学院计算机网络技术,上海电子信息职业技术学院计算机网络技术专业...
  7. 单手撸了个springboot+mybatis+druid 1
  8. spring学习笔记--IOC接口
  9. MySQL数据库反向生成powerdesigner模型
  10. 动画算计算机专业吗,能够定义角色功能的计算机动画系统属于。 (1.0分)
  11. 拓端tecdat|r语言有限正态混合模型EM算法的分层聚类、分类和密度估计及可视化
  12. 洛谷P2580 于是他错误的点名开始了 题解
  13. 零基础如何学习C语言
  14. vbs脚本的基本使用
  15. gitlab-runner 注册失败
  16. IOS开源项目Telegram初试
  17. 高德地图安卓 拖拽选点_高德地图想再造一个大众点评?
  18. 如何将ida中的悬浮窗口恢复原位
  19. oracle如何实现自增?----用序列sequence的方法来实现
  20. win7无线热点_电脑小技巧电脑做无线热点

热门文章

  1. SQL Server中并行执行计划的基础
  2. sql 查询手动创建的表_学习SQL:使用SQL查询手动创建报告
  3. 为什么SQL Server DBA对Python感兴趣?
  4. 如何暴露内网主机到外网
  5. 转:Java多线程学习(吐血超详细总结)
  6. jquery href属性和click事件冲突
  7. 国庆七天乐 Day7
  8. 发布一个基于 Reactor 模式的 C++ 网络库
  9. 一文了解H5照片上传过程
  10. 一款可以安利的MarkDown编辑器