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. JS实现图片放大查看

    示例:https://wumaozheng.com/static-pages/image-magnifier.html <!DOCTYPE html> <html> <h ...

  2. Confluence 6 管理插件和组件

    一个 组件(add-on)是与 Confluence 分开安装的功能,能够加强 Confluence 的功能和使用.插件(plugin)和 组件(add-on)这 2 个词通常是一起使用的. 一共有 ...

  3. <<人月神话>>阅读体会(一)

    第一次听说人月神话还是在大一上学期的导论课那会儿,那会儿好像就已经确定了自己要学软件,于是就去问王建民老师能不能给我推荐几本软件工程方面的书,我想要提前自己学学,以为老师会给我推荐一些某种语言类的学习 ...

  4. 【linux】安装python依赖库confluent_kafka

    想跑https://github.com/ghaughian/mongo-kafka-spark/blob/master/src/pub.py这个程序,发现没有confluent_kafka库 1.p ...

  5. 《剑指offer》 树的子结构

    本题来自<剑指offer> 树的子结构 题目: 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 思路: 分两步走: 第一步:判断根节点,两个根节 ...

  6. 线性空间和异或空间(线性基)bzoj4004贪心+高斯消元优秀模板

    线性空间:是由一组基底构成的所有可以组成的向量空间 对于一个n*m的矩阵,高斯消元后的i个主元可以构成i维的线性空间,i就是矩阵的秩 并且这i个主元线性无关 /* 每个向量有权值,求最小权极大线性无关 ...

  7. cf1076d 贪心最短路

    #include<bits/stdc++.h> #include<queue> using namespace std; #define maxn 300005 #define ...

  8. jdk的卸载及安装+环境变量的配置

    一.卸载:在控制面板中删除.这是最基本的方式.2. 采用360安全卫士的软件卸载工具,记得将有关的注册表信息全部删除.3. 在“运行”中输入Regedit,打开注册表编辑器,找到HKEY_LOCAL_ ...

  9. 80端口被占用 导致apach无法启动问题

    1.查找是哪个程序占用了80端口 netstat -ano 列出所有进程 观察 “本地地址” 列 找到对应的PID 我这里是4 简单的办法,打开任务管理器,查看PID是4的 是哪个进程. 发现是Sys ...

  10. Python算法之二分查找法

    1: l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88] 从列表中找到某个num的位置 def ...