必威体育Betway必威体育官网
当前位置:首页 > IT技术

Java MouseEvent类(鼠标事件)

时间:2019-08-12 10:15:27来源:IT技术作者:seo实验室小编阅读:70次「手机版」
 

mouse_event

简介

所有组件都能发出鼠标事件,MouseEvent类负责捕获鼠标事件,可以通过为组件添加实现了MouseListener接口的监听器类来处理相应的鼠标事件。

MouseListener接口共有5个抽象方法,分别在光标移入或移出组件时、鼠标按键被按下或释放时和发生单击事件时被触发。所谓单击事件,就是按键被按下并释放。

注意:如果按键是在移出组件之后才被释放,则不会触发单击事件。

当双击鼠标时,第一次单击单击鼠标将触发第一次单击事件。(也就是先会输出第一次,在输出第二次)

public interface MouseListener extends EventListener{

    public void mouseReleased(MouseEvent e);//鼠标按键被释放是被触发

    public void mousePressed(MouseEvent e);//鼠标按键被按下时被触发

    public void mouseExited(MouseEvent e);//光标移除组件时被触发

    public void mouseEntered(MouseEvent e);//光标移入组件时被触发

    public void mouseClicked(MouseEvent e);//发生单击事件时被触发

}

常用方法

当需要判断触发此次事件的按键时,可以通过静态常量判断由 getButton() 方法返回的 int 型值代表的键:

import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;

import javax.swing.*;

public class t3 extends JFrame{
	
	private static final long serialversionuid = 1L; 
	
	public t3() {
		settitle("Hern");
		setBounds(400, 400, 400, 400);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		final JLabel label = new JLabel();
		label.setText("请用鼠标点击");
		label.addMouseListener(new MouseListener() {
			
			@Override
			public void mouseReleased(MouseEvent e) {//鼠标按键被释放时被触发
				// TODO Auto-generated method stub
				System.out.println("鼠标按键被释放,");
				int i = e.getButton(); //通过该值可以判断释放的是哪个键
				if (i == MouseEvent.BUTTON1) {
					System.out.print("释放了鼠标左键");
				}else if(i == MouseEvent.BUTTON2) {
					System.out.println("释放了鼠标滚轮");
				}else if(i == MouseEvent.BUTTON3){
					System.out.println("释放了鼠标右键");
				}
					
			}
			
			@Override
			public void mousePressed(MouseEvent e) {//鼠标按键被按下时被触发
				// TODO Auto-generated method stub
				System.out.print("鼠标按键被按下,");
				int i = e.getButton(); // 通过该值可以判断按下的是哪个键
				if(i == MouseEvent.BUTTON1) {
					System.out.print("按下了鼠标左键");
				}else if(i == MouseEvent.BUTTON2) {
					System.out.print("按下了鼠标滚轮");
				}else if(i == MouseEvent.BUTTON3) {
					System.out.print("按下了鼠标右键");
				}
			}
			
			@Override
			public void mouseExited(MouseEvent e) {//光标移出组件时被触发
				// TODO Auto-generated method stub
				System.out.println("光标移除组件");
			}
			
			@Override
			public void mouseEntered(MouseEvent e) {//光标移入组件时被触发
				// TODO Auto-generated method stub
				System.out.println("光标移入组件");

			}
			
			@Override
			public void mouseClicked(MouseEvent e) {//发生单击事件时被触发
				// TODO Auto-generated method stub
				System.out.print("单击了鼠标按键,");
				int i = e.getButton(); // 通过该值可以判断单击的是哪个键
				if (i == MouseEvent.BUTTON1) {
					System.out.print("单击的是鼠标左键,");
				}else if (i == MouseEvent.BUTTON2) {
					System.out.print("单击的是鼠标滚轮,");
				}else if (i == MouseEvent.BUTTON3) {
					System.out.print("单击的是鼠标右键,");
				}
				int clickCount = e.getClickCount();//获取单击按键的次数
				System.out.println("单击次数为" + clickCount + "下");
			}
		});
		
		
		add(label);
		setVisible(true);
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		t3 test = new t3();

	}

}

相关阅读

Java养成类小游戏

此周是做项目做一个java的养成类的小游戏我是用控制台写的小游戏建了很多的UI地图,部分代码,然后让我们来看实现的样子:好啦,部分内容

Java中file类getPath(),getAbsolutePath(),getCanonic

file的这几个取得path的方法各有不同,下边说说详细的区别概念上的区别:(内容来自jdk,个人感觉这个描述信息,只能让明白的人明白,不明白

Java解析XML文件

1.DOM方式解析XMLDom解析是将xml文件全部载入到内存,组装成一颗dom树,然后通过节点以及节点之间的关系来解析xml文件,与平台无关,ja

Java常见面试题

今天整理了下面试中会经常出现的一些问题。 1.线程的几种状态和相互的转换? 回答要点: 1)线程有5中状态,分别是: 创建 就绪 运行 阻塞

Effective Java 第 3 版(中文版)PDF 下载

微信公众号:一个优秀的废人如有问题或建议,请后台留言,我会尽力解决你的问题。 简介 本书一共包含 90 个条目,每个条目讨论 Java 程序

分享到:

栏目导航

推荐阅读

热门阅读