package howework_07;
public class Example9_10 {
public static void main(String args[]) {
WindowMouse win=new WindowMouse();
win.setTitle("处理鼠标事件");
win.setBounds(100,100,460,360);
}
}

主类

 package howework_07;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class WindowMouse extends JFrame{
JTextField text;
JButton button;
JTextArea textArea;
MousePolice police;
WindowMouse(){//在窗口的构造函数中把组件实例化
init();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
void init() {
setLayout(new FlowLayout());//将面板的布局设置为FlowLayout,面板上增加的组件默认是按照从左到右顺序排列
text =new JTextField(8);
textArea =new JTextArea(5,28);
police =new MousePolice(); police.setJTextArea(textArea); text.addMouseListener(police);//事件源注册监听器
button =new JButton("按钮");
button.addMouseListener(police);//事件源注册监听器
//向窗口中加入组件
addMouseListener(police);
add(button);
add(text);
add(new JScrollPane(textArea));//滚动条
}
}

WindowMouse

 package howework_07;

 import java.awt.event.MouseEvent;
import java.awt.event.MouseListener; import javax.swing.JButton;
import javax.swing.JTextArea;
import javax.swing.JTextField; public class MousePolice implements MouseListener{
JTextArea area;//文本
public void setJTextArea(JTextArea area) {
this.area=area;
}
public void mousePressed(MouseEvent e) {
area.append("\n鼠标按下,位置:"+"("+e.getX()+","+e.getY()+")");
}//JTextArea中有append(),而JTextFiled中只有setText()
public void mouseReleased(MouseEvent e) {
area.append("\n鼠标释放,位置:"+"("+e.getX()+")"+e.getY()+")");
}
public void mouseEntered(MouseEvent e) {
if(e.getSource() instanceof JButton) {
area.append("\n鼠标进入按钮,位置:"+"("+e.getX()+","+e.getY()+")");
}
if(e.getSource() instanceof JTextField)
area.append("\n鼠标进入文本框,位置:"+"("+e.getX()+","+e.getY()+")");
if(e.getSource() instanceof JTextField)
area.append("\n鼠标进入窗口,位置:"+"("+e.getX()+","+e.getY()+")");
}
public void mouseExited(MouseEvent e) {
area.append("\n鼠标退出,位置:"+"("+e.getX()+","+e.getY()+")");
}
public void mouseClicked(MouseEvent e) {
if(e.getClickCount()>=2)
area.setText("鼠标连击,位置:"+"("+e.getX()+","+e.getY()+")");
}
}

MousePolice

java中鼠标监听器的用法;

首先创建一个类来实现鼠标监听器接口,然后对鼠标监听器的各种函数进行重载,以实现相关的操作。

然后对于需要添加监听器的组件,注册监听器   ().addMouseListener( )其中第一个括号为组件,后面为鼠标监听器的一个实例化的对象。

同时要记得把各个组件和鼠标监听器添加到窗口中。

JAVA鼠标监听器的更多相关文章

  1. Java基础之处理事件——选项按钮的鼠标监听器(Lottery 2 with mouse listener)

    控制台程序. 定义监听器类有许多方式.下面把监听器类定义为单独的类MouseHandler: // Mouse event handler for a selection button import ...

  2. 使用鼠标监听器,使鼠标悬停在JTable某行时背景色改变

    一.需要知道的事实: 1.当鼠标悬停在JTable上时,相应的格子(cell)的渲染器(TableCellRenderer)的渲染方法(getTableCellRenererComponent)会被调 ...

  3. 【Java】在JTable中设置鼠标监听器,点击操作对应数据

    最终效果 鼠标点击JTable中任一数据,修改相应的信息. 确定点击的行和列 package com.dao; import java.awt.event.MouseAdapter; import j ...

  4. JAVA鼠标屏幕绘制拖拽删除矩形

    import java.awt.Cursor; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Point; ...

  5. java鼠标与键盘事件监听

    package cn.stat.p3.windowdemo; import java.awt.Button; import java.awt.FlowLayout; import java.awt.F ...

  6. Java ---Listener监听器

    在我们的web容器中,一直不断的触发着各种事件,例如:web应用启动和关闭,request请求到达和结束等.但是这些事件通常对于开发者来说是透明的,我们可以根据这些接口开发符合我们自身需求的功能.在w ...

  7. Java事件监听器的四种实现方式

    自身类作为事件监听器 外部类作为事件监听器 匿名内部类作为事件监听器 内部类作为事件监听器 自身类作为事件监听器: import javax.swing.*; import java.awt.*; i ...

  8. Java电话监听器【精品博客】

    模拟拨打电话,接听电话,挂断电话,拨打为空号,等等,这些动作用Java接口监听的方式来完成,主要是为了训练使用接口监听回调: /** * 业务场景一: * [萍萍]--->请输入手机号码进行拨打 ...

  9. java Web监听器实现定时发送邮件

    首先介绍java定时器(java.util.Timer)有定时执行计划任务的功能,通过设定定时器的间隔时间,会自动在此间隔时间后执行预先安排好的任务(java.util. TimerTask) 由于我 ...

随机推荐

  1. hive on spark 编译时遇到的问题

    1.官方网站下载spark 1.5.0的源码 2.根据官方编译即可. export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedC ...

  2. php插件名称 yum安装

    提示缺少                           安装  DOM扩展模块              yum install php-xml  PDO                     ...

  3. [Redis-CentOS7]Redis设置连接密码(九)

    设置Redis密码 修改/etc/redis.conf 一定要强密码redis为内存存储 抗暴力破解强 requirepass password 重启服务 systemctl restart redi ...

  4. vs code支持 es6, node.js 语法提示

    npm install --save-dev @types/node 安装这个东西就可以了, 代码拷走, 回去愉快的敲代码吧

  5. CCS过渡和动画

    过渡 过渡能让使用过渡的元素在样式发生变化时(例如鼠标划过,单击按钮,点击图片时,颜色,尺寸,位置等样式发生变化),定义变化过程中的动画,让变化不再是瞬间产生. 过渡样式使用transition定义, ...

  6. jenkins 参数化运行性能测试脚本

    概述 我们用jenkins做持续集成的时候,常常需要跑不同的脚本,传不同的参数.尤其是性能基准测试,线程数和持续时间需要实时调整以满足我们的测试需求.那么是不是需求变了,我们 就需要重新准备一套脚本? ...

  7. Spark SQL 之自定义删除外部表

    前言 Spark SQL 在删除外部表时,本不能删除外部表的数据的.本篇文章主要介绍如何修改Spark SQL 源码实现在删除外部表的时候,可以带额外选项来删除外部表的数据. 本文的环境是我一直使用的 ...

  8. Android中调用另一个Activity并返回结果-以模拟选择头像功能为例

    场景 Android中点击按钮启动另一个Activity以及Activity之间传值: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/detail ...

  9. GitLab Runner

    GitLab Runner是一个开源项目,用于运行你的作业(jobs)并将结果发送回GitLab.它与GitLab CI结合使用,GitLab CI是GitLab用于协调jobs的开源持续集成服务. ...

  10. Explain执行计划与索引优化实践

    一.何为explain执行计划? 使用explain关键字可以模拟优化器执行SQL语句,从而知道MySQL是如何使用索引来处理你的SQL查询语句以及连接表,可以分析查询语句或是结构的性能瓶颈,帮助我们 ...