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. Android性能优化:手把手带你全面实现内存优化

      前言 在 Android开发中,性能优化策略十分重要 本文主要讲解性能优化中的内存优化,希望你们会喜欢 目录   1. 定义 优化处理 应用程序的内存使用.空间占用 2. 作用 避免因不正确使用内 ...

  2. 一种基于NTC的控温电路及软件实现

    NTC(Negative Temperature Coefficient)是一种随温度上升时,电阻值呈指数关系减小的热敏电阻.应用广泛,最近我们就采用了NTC来控制加热并测温,并达到了预期的效果. 1 ...

  3. JdbcUtil

    package com.todaytech.pwp.core.exception; public class BizException extends RuntimeException { publi ...

  4. 从 Confluence 5.3 及其早期版本中恢复空间

    如果你需要从 Confluence 5.3 及其早期版本中的导出文件恢复到晚于 Confluence 5.3 的 Confluence 中的话.你可以使用临时的 Confluence 空间安装,然后将 ...

  5. Confluence 6 那些文件需要备份

    备份整个 home 目录是最安全的选项.但是,有很多目录是在 Confluence 启动的时候创建的并且也是可以忽略的.不管那些文件夹可以忽略,下面的文件夹必须进行备份才能回复: <conf-h ...

  6. jquery通过visible来判断标签是否显示或隐藏

    if($(".spnTotal").is(":visible")==false) { alert('隐藏'); } else { alert('显示'); } 

  7. java web----MINA框架使用

    前期准备 1.下载 http://mina.apache.org/ 2.将依赖包添加到工程目录下(在工程目录下创建libs(directory目录)) 3.将 slf4j-api-1.7.26.jar ...

  8. easyui 布局之window和panel一起使用时,拉动window宽高时panel不跟随一起变化

    项目开发中布局是每一个组件都由最外层的window和内部的至少一个panel组成,其他的细小组件再依次放到panel中. 问题:当拉动外部的window时我们希望内部的panel的宽高也跟着变化,但是 ...

  9. 执行Spark运行在yarn上的命令报错 spark-shell --master yarn-client

    1.执行Spark运行在yarn上的命令报错 spark-shell --master yarn-client,错误如下所示: // :: ERROR SparkContext: Error init ...

  10. update + join 多表操作

    UPDATE vtiger_notificationcf as a INNER JOIN vtiger_crmentity as b ON a.notificationid = b.crmid SET ...