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的养成类的小游戏我是用控制台写的小游戏建了很多的UI地图,部分代码,然后让我们来看实现的样子:好啦,部分内容
Java中file类getPath(),getAbsolutePath(),getCanonic
file的这几个取得path的方法各有不同,下边说说详细的区别概念上的区别:(内容来自jdk,个人感觉这个描述信息,只能让明白的人明白,不明白
1.DOM方式解析XMLDom解析是将xml文件全部载入到内存,组装成一颗dom树,然后通过节点以及节点之间的关系来解析xml文件,与平台无关,ja
今天整理了下面试中会经常出现的一些问题。 1.线程的几种状态和相互的转换? 回答要点: 1)线程有5中状态,分别是: 创建 就绪 运行 阻塞
Effective Java 第 3 版(中文版)PDF 下载
微信公众号:一个优秀的废人如有问题或建议,请后台留言,我会尽力解决你的问题。 简介 本书一共包含 90 个条目,每个条目讨论 Java 程序