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监听器的更多相关文章

  1. 使用Java修改Windows注册表

    使用Java修改Windows注册表,使用最基本的就是cmd命令. 事例和运行结果如下所示: package day01; import java.io.IOException; /* 1,reg a ...

  2. Java 修改Windows注册表,以实现开机自启动应用程序。

    使用Java修改Windows注册表,使用最基本的就是cmd命令. 事例和运行结果如下所示: package day01; import java.io.IOException; /* 1,reg a ...

  3. Selenium2学习-001-Selenium2 WebUI自动化Java开发 Windows 环境配置

    此文主要介绍 Selenium2 WebUI自动化Java开发 Windows 环境配置,供各位亲们参考,若有不足之处,敬请各位大神指正,非常感谢! 所需软件列表如下所示: 所属分类 具体名称 备注 ...

  4. Java读写Windows共享文件夹 .

    版权声明:本文为博主原创文章,未经博主允许不得转载. 项目常常需要有访问共享文件夹的需求,例如共享文件夹存储照片.文件等.那么如何使用Java读写Windows共享文件夹呢? Java可以使用JCIF ...

  5. Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】

    http://blog.csdn.net/xiefu5hh/article/details/51707529 Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例[附 ...

  6. Java调用windows命令

    JAVA调用windows的cmd命令 用起来会让程序变得更加简洁明了,非常实用. 核心就是使用 Runtime类. cmd的xcopy就有很强大的文件夹,文件处理功能. 下面就以xcopy来说明,如 ...

  7. java 调用windows的COM组件举例(使用JACOB)

    java 调用windows的COM组件举例(使用JACOB) (转自这里) 最近公司需要做一个效果,开发一个程序能在程序运行时打开microsoft office的相关软件,实时写入,然后能关闭,你 ...

  8. java 调用windows bat脚本

    当我们需要在java程序中调用外部程序,我们可用通过Runtime.exec()调用来完成. The class java.lang.Runtime features a static method ...

  9. Appium(JAVA)Windows 7系统搭建及示例运行

    Appium(JAVA)Windows 7系统搭建及示例运行 分类: Appium 2014-11-14 17:44 4323人阅读 评论(2) 收藏 举报 1.搭建Android环境 http:// ...

随机推荐

  1. 2018年Android的保活方案效果统计

    一.常见保活方案 1.监听广播:监听全局的静态广播,比如时间更新的广播.开机广播.解锁屏.网络状态.解锁加锁亮屏暗屏(3.1版本),高版本需要应用开机后运行一次才能监听这些系统广播,目前此方案失效.可 ...

  2. Confluence 6 附件存储配置

    在默认的情况下 Confluence 的附件存储在 home 目录中(例如,在文件系统). 希望对 Confluence 的附件存储进行配置: 在屏幕的右上角单击 控制台按钮 ,然后选择 Genera ...

  3. Confluence 6 从生产环境中恢复一个测试实例

    请参考 Restoring a Test Instance from Production 页面中的内容获得更多完整的说明. 很多 Confluence 的管理员将会使用生产实例运行完整数据和服务的 ...

  4. Confluence 6 配置数据库查询超时时间

    如果数据库的查询时间太长同时你的应用程序显示没有响应,你可以配置数据库的查询超时时间.在默认情况下 Confluence 没有超时时间.希望配置数据库查询超时时间,在你的测试服务器上进行下面的操作: ...

  5. 【sqli-labs】Less18~Less22

    Less18: User-Agent注入,有错误回显 感叹一句,越来越难了.现在只能先看代码再分析怎么注入了..... 通过代码,发现username和password均做了校验.但是会有一个插入us ...

  6. 网络编程—tcp

    一.TCP简介 TCP介绍 TCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF ...

  7. 使用Eclipse、Tomcat遇到的一些问题

    Tomcat服务无法启动 前两天瞎搞,试着弄了弄Android的环境.结果不知道动了什么地方,Tomcat崩了,本地打开localhost:8080一直显示404,eclipse也无法使用Tomcat ...

  8. 微信开发者工具_小程序js文件后面的M代表什么

    Git 版本管理为了方便开发者更简单快捷地进行代码版本管理,简化一些常用的 Git 操作,以及降低代码版本管理使用的学习成本,开发者工具集成了 Git 版本管理面板.A: 增加的文件.C: 文件的一个 ...

  9. Tomcat配置域名/IP访问及其中遇到的问题注意事项

    1.先在tomcat下的conf下找到server.xml文件,用记事本打开后,首先对端口号进行修改,以前一直以为8080是默认的端口号,其实默认的端口号是80 <Connector port= ...

  10. python 给对象绑定属性和方法和__slots__的使用

    # 以c语言为主是静态语言,运行之前先编译,在运行的过程中不允许编辑代码# 在运行的过程中,可以改变,可以添加属性,就是属于动态语言(python) # python动态的添加属性以及方法class ...