Java实现Windows、Mouse监听器
1、通过实现WindowListener接口来实现Windows监听器:
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener; import javax.swing.JFrame; public class WindowsListenerFrame extends JFrame implements WindowListener { public WindowsListenerFrame() {
this.setTitle("窗体事件");
setSize(600, 400);
setResizable(false);
setLocationRelativeTo(null); this.addWindowListener(this);
} public static void main(String[] args) {
JFrame frame = new WindowsListenerFrame();
frame.setVisible(true);
} @Override
public void windowActivated(WindowEvent event) {
} @Override
public void windowClosed(WindowEvent arg0) {
} @Override
public void windowClosing(WindowEvent arg0) {
this.dispose();
} @Override
public void windowDeactivated(WindowEvent arg0) {
} @Override
public void windowDeiconified(WindowEvent arg0) {
} @Override
public void windowIconified(WindowEvent arg0) {
} @Override
public void windowOpened(WindowEvent arg0) {
}
}
2、通过实现WindowAdapter接口来实现Windows监听器:
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.JFrame; public class WindowAdapterFrame extends JFrame{
public WindowAdapterFrame() {
setTitle("窗体适配器");
setSize(600, 400);
setResizable(false); WindowListener listener =new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
dispose();
}
};
this.addWindowListener(listener);
}
public static void main(String[] args) {
JFrame frame=new WindowAdapterFrame();
frame.setVisible(true);
}
}
3、通过实现MouseListener、MouseMotionListener接口来实现Mouse监听器:
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener; import javax.swing.JFrame;
import javax.swing.JLabel; public class MouseListenerFrame extends JFrame implements MouseListener, MouseMotionListener{
JLabel lblStatus=null;
public MouseListenerFrame() {
setTitle("MouseListener");
setSize(600, 400);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setResizable(false); Container container =this.getContentPane();
lblStatus=new JLabel();
container.add(BorderLayout.SOUTH, lblStatus); container.addMouseListener(this);
container.addMouseMotionListener(this);
}
/**
* 值得注意的是String.format()方法的调用格式,是用","来隔开各个参数
*/
@Override
public void mouseClicked(MouseEvent event) {
String msg=String.format("鼠标点击[%d, %d]",event.getX(),event.getY());
lblStatus.setText(msg);
}
@Override
public void mousePressed(MouseEvent e) {
String button=null;
if(MouseEvent.BUTTON1==e.getButton()) {
button="左键";
}else if(MouseEvent.BUTTON2==e.getButton()) {
button="滚轮";
}else if(MouseEvent.BUTTON3==e.getButton()) {
button="右键";
}
String msg=String.format("鼠标 %s 按下[%d,%d]",button,e.getX(),e.getY());
lblStatus.setText(msg);
}
@Override
public void mouseReleased(MouseEvent e) {
String msg=String.format("鼠标释放[%d,%d]",e.getX(),e.getY());
lblStatus.setText(msg);
}
@Override
public void mouseEntered(MouseEvent e) {
String msg=String.format("鼠标进入[%d,%d]",e.getX(),e.getY());
lblStatus.setText(msg);
}
@Override
public void mouseExited(MouseEvent e) {
String msg=String.format("鼠标退出[%d,%d]",e.getX(),e.getY());
lblStatus.setText(msg);
}
@Override
public void mouseDragged(MouseEvent e) {
String msg=String.format("鼠标拖动,当前坐标 [%d,%d]",e.getX(),e.getY());
lblStatus.setText(msg);
}
@Override
public void mouseMoved(MouseEvent e) {
String msg=String.format("鼠标移动,当前坐标 [%d,%d]",e.getX(),e.getY());
lblStatus.setText(msg);
}
public static void main(String[] args) {
JFrame frame=new MouseListenerFrame();
frame.setVisible(true);
}
}
4、通过实现KeyListener接口来实现Key监听器:
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener; import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextArea; public class KeyListenerFrame extends JFrame implements KeyListener {
// 1. 属性
JLabel lblStatus = null; // 2. 方法
public KeyListenerFrame() {
this.setTitle("鼠标事件");
setSize(600, 400);
setResizable(false);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE); Container contentPane = this.getContentPane(); lblStatus = new JLabel();
contentPane.add(BorderLayout.SOUTH, lblStatus); JTextArea txaEdit = new JTextArea();
contentPane.add(BorderLayout.CENTER, txaEdit); txaEdit.addKeyListener(this);
} public static void main(String[] args) {
JFrame frame = new KeyListenerFrame();
frame.setVisible(true);
} @Override
public void keyPressed(KeyEvent event) {
lblStatus.setText("键盘按下: " + event.getKeyChar() + "(" + event.getKeyCode() + ")");
} @Override
public void keyReleased(KeyEvent event) {
lblStatus.setText("键盘放开: " + event.getKeyChar() + "(" + event.getKeyCode() + ")");
} @Override
public void keyTyped(KeyEvent event) {
lblStatus.setText("键盘敲击: " + event.getKeyChar() + "(" + event.getKeyCode() + ")");
}
}
Java实现Windows、Mouse监听器的更多相关文章
- 使用Java修改Windows注册表
使用Java修改Windows注册表,使用最基本的就是cmd命令. 事例和运行结果如下所示: package day01; import java.io.IOException; /* 1,reg a ...
- Java 修改Windows注册表,以实现开机自启动应用程序。
使用Java修改Windows注册表,使用最基本的就是cmd命令. 事例和运行结果如下所示: package day01; import java.io.IOException; /* 1,reg a ...
- Selenium2学习-001-Selenium2 WebUI自动化Java开发 Windows 环境配置
此文主要介绍 Selenium2 WebUI自动化Java开发 Windows 环境配置,供各位亲们参考,若有不足之处,敬请各位大神指正,非常感谢! 所需软件列表如下所示: 所属分类 具体名称 备注 ...
- Java读写Windows共享文件夹 .
版权声明:本文为博主原创文章,未经博主允许不得转载. 项目常常需要有访问共享文件夹的需求,例如共享文件夹存储照片.文件等.那么如何使用Java读写Windows共享文件夹呢? Java可以使用JCIF ...
- Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】
http://blog.csdn.net/xiefu5hh/article/details/51707529 Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例[附 ...
- Java调用windows命令
JAVA调用windows的cmd命令 用起来会让程序变得更加简洁明了,非常实用. 核心就是使用 Runtime类. cmd的xcopy就有很强大的文件夹,文件处理功能. 下面就以xcopy来说明,如 ...
- java 调用windows的COM组件举例(使用JACOB)
java 调用windows的COM组件举例(使用JACOB) (转自这里) 最近公司需要做一个效果,开发一个程序能在程序运行时打开microsoft office的相关软件,实时写入,然后能关闭,你 ...
- java 调用windows bat脚本
当我们需要在java程序中调用外部程序,我们可用通过Runtime.exec()调用来完成. The class java.lang.Runtime features a static method ...
- Appium(JAVA)Windows 7系统搭建及示例运行
Appium(JAVA)Windows 7系统搭建及示例运行 分类: Appium 2014-11-14 17:44 4323人阅读 评论(2) 收藏 举报 1.搭建Android环境 http:// ...
随机推荐
- Confluence 6 配置白名单
Confluence 管理员可以通过添加 URLs 到白名单选择出入的链接和使用 RSS 宏,HTML 包含宏和小工具中的内容. 如果一个内容被添加到 Confluence 系统中,但是这个 URLs ...
- Confluence 6 安装 PostgreSQL
如果你的系统中还没有安装 PostgreSQL 数据库,你需要先下载后进行安装. 在安装 PostgreSQL 时候的一些小经验: 在安装的时候提供的 密码(password )是针对 'postg ...
- python并发编程之多进程1-----------互斥锁与进程间的通信
一.互斥锁 进程之间数据隔离,但是共享一套文件系统,因而可以通过文件来实现进程直接的通信,但问题是必须自己加锁处理. 注意:加锁的目的是为了保证多个进程修改同一块数据时,同一时间只能有一个修改,即串行 ...
- CentOS 7 部署 Spring Boot
Spring Boot 内嵌了tomcat .我们可以将Boot打成 jar 包丢到服务器上运行才行. Spring Boot已经帮我们打理好了这一切,如果项目是继承自 spring-boot-sta ...
- 1873: This offer(zzuli)
题目描述 话说WX入职已经有一个多月了,公司boss突然扔给他了一个问题,如果解决不了的话就会被开除掉 - -#,情急之下他只能来请教你了,boss给了他N个不大于100的数,现在wx需要将这N个数通 ...
- Sequence Number
1570: Sequence Number 时间限制: 1 Sec 内存限制: 1280 MB 题目描述 In Linear algebra, we have learned the definit ...
- Nginx详解二十一:Nginx深度学习篇之配置苹果要求的openssl后台HTTPS服务
配置苹果要求的证书: 1.服务器所有的连接使用TLS1.2以上的版本(openssl 1.0.2) 2.HTTPS证书必须使用SHA256以上哈希算法签名 3.HTTPS证书必须使用RSA2048位或 ...
- sass方式实现颜色平铺(红色--->紫色)
<!DOCTYPE html><html lang="en"><head> <link rel="stylesheet" ...
- linux把程序做成系统服务并自启动
chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息.谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接. 一.chkconfig 的使用语法1.c ...
- MySQL慢查询 - 开启慢查询
一.简介 开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能. 二.参数说明 slow_query_log 慢查询开启状态 slow_ ...