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:// ...
随机推荐
- (*(volatile unsigned long *)详解
(*(volatile unsigned long *) 对于不同的计算机体系结构,设备可能是端口映射,也可能是内存映射的.如果系统结构支持独立的IO地址空间,并且是端口映射,就必须使用汇编语言完成实 ...
- 【linux】ftp使用端口转发问题
相关资料: 1.[ssh]端口转发 2.[ftp]主动模式和被动模式 先说结论:用端口转发无法解决ftp客户端与服务器的连接问题,原因是ftp的data端口不固定,不能把所有>1024的端口都做 ...
- burpsuite使用教程和实战详解(一)
1.最近做渗透测试,其实使用一种方式很难全面的对一个web或者app等安全服务器做安全评估,所以要尽可能的对网络安全的渗透测试有一个较全面的认知.不光要熟悉前端和 后天的编程,还有掌握基于这两种编程的 ...
- MySQL数据查询子查询语句
- MongoDB----提升
文档之间的联系 一对一:通过文档内嵌的形式体现一对一的关系 db.user.insert({name:"xiaoming",frind:{name:"xiahua&quo ...
- java设置字符串编码、转码
Unicode(统一码.万国码.单一码)是计算机科学领域里的一项业界标准,包括字符集.编码方案等.Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一 ...
- Python知乎热门话题数据的爬取实战
import requestsfrom pyquery import PyQuery as pq url = 'https://www.zhihu.com/explore'headers = { 'u ...
- Leetcode 344. 反转字符串
344. Reverse String 解题代码: class Solution { public: void reverseString(vector<char>& s) { , ...
- springboot快速使用
1.编写SpringConfig 用于实例化Spring容器 @Configuration //通过该注解来表明该类是一个Spring的配置,相当于一个xml文件 @Bean // 通过该注解来表明是 ...
- IO流-file
1.1 IO概述 回想之前写过的程序,数据都是在内存中,一旦程序运行结束,这些数据都没有了,等下次再想使用这些数据,可是已经没有了.那怎么办呢?能不能把运算完的数据都保存下来,下次程序启动的时候,再把 ...