键盘监听器
键盘监听器KeyListener用来监听键盘事件。键盘事件有三种:KEY_PRESSED键按下了,KEY_RELEASED键松开了,KEY_TYPED键按过了。每个键都有一个键码,普通键的键码就是ASCII码。键码可通过int getKeyCode()方法获得。Java设置了一种“虚拟键码”(Virtual Key Code),用“VK_”作为前缀,例如VK_G。下面是某些特殊键的虚拟键码。
键码
|
含义
|
键码
|
含义
|
VK_LEFT/VK_RIGHT |
左右方向键 |
VK_CONTROL |
Ctrl键 |
VK_KP_UP |
小键盘向上 |
VK_ATL |
Alt键 |
VK_PAUSE |
暂停键 |
VK_SHIFT |
Shift键 |
VK_NUMBER0 |
小键盘数字0 |
VK_F1 |
功能键F1 |
VK_0 |
数字键0 |
VK_B |
字母键B |
虚拟键码对应的是键位,不区分大小写。要想知道大小写还必须查看修饰键(modifier key)。这由输入事件InputEvent的getModifere()方法得到,把返回值与常量SHIFT_MASK, CONTROL_MASK, ALT_MASK比较,用以判定哪个修饰键处于“同时按下”状态。
监听器KeyListener有三个方法keyPressed(KeyEvent evt),keyReleased(KeyEvent evt),keyTyped(KeyEvent evt),分别用于相应事件发生后的处理。下面的例程中给自己的键盘监听器建立了showKeyEventMsg方法来显示按键信息。
除了getKeyCode()方法得到键码外,还可用getKeyChar()方法得到输入的字符,用getKeyText(code)方法得到输入的字符串。用isShiftDown()判断shift键是否被按下等。当按下Control键时getKeyText返回的是“ctrl",Alt和Shift也类似。
下面的例子演示得到键码和字符的方法,在命令行上显示结果。
例15 本例程演示键盘监听器后键码的用法。
///
// KeyEvt.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class MyKeyListener implements KeyListener{
public void keyPressed(KeyEvent evt) {
System.out.println("\n按键被按下");
showKeyEventMsg(evt);
}
public void keyReleased(KeyEvent evt){ }
public void keyTyped(KeyEvent evt) { }
private void showKeyEventMsg(KeyEvent evt){//显示按键事件信息
//得到按键对应的整型数
int code = evt.getKeyCode();
//返回按键事件所代表的字符
char c = evt.getKeyChar();
//得到代表按键的字符串
String szText = evt.getKeyText(code);
if (code != KeyEvent.VK_UNDEFINED)
System.out.println("\n按键对应的整型数:"+code);
if (c != KeyEvent.CHAR_UNDEFINED)
System.out.println("\n与按键相联系的字符:"+c);
if (evt.isShiftDown())
System.out.println("\n按键Shift被按下");
System.out.println("\n按键本身的字符串:"+szText);
}
}
class ButtonPanel extends JPanel{
public ButtonPanel() {
//新建一个文本域组件
tf = new JTextField(20);
add(tf);
//指定用来处理该按钮事件的监听器对象为JPanel本身
myListener = new MyKeyListener();
tf.addKeyListener(myListener);
}
private JTextField tf;
private MyKeyListener myListener;
}
class ButtonFrame extends JFrame{
public ButtonFrame() {
setTitle("键盘事件示例程序");
setSize(300, 200);
setLocation(100,100);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e)
{ System.exit(0);
}
});
Container ctPane = getContentPane();
ctPane.add(new ButtonPanel());
}
}
public class KeyEvt{
public static void main(String[] args) {
JFrame frame = new ButtonFrame();
frame.setVisible(true);
}
}
///
简要说明
-
程序建立了自己的键盘监听器MyKeyListener,定义了一个新方法showKeyEventMsg用来在标准输出设备上显示有关的键盘信息。
-
在面版ButtonPanel上建立文本框并加键盘监听器。把面版ButtonPanel放到窗口ButtonFrame中。
鼠标监听器
鼠标监听器mouseListener监听鼠标事件MouseEvent。相应事件和处理方法如下表:
鼠标事件 处理方法
MOUSE_CLICKED MouseClicked (MouseEvent) 鼠标点击(单或双)
MOUSE_PRESSED MousePressed (MouseEvent) 鼠标按下
MOUSE_RELEASED MouseReleased(MouseEvent) 鼠标松开
MOUSE_ENTERED MouseEntered (MouseEvent) 鼠标进入(某组件区域)
MOUSE_EXITED MouseExited (MouseEvent) 鼠标离开(某组件区域)
鼠标事件MouseEvent常用方法
int getClickCount() 得到点击次数1 OR 2;
int getX(), int getY() 得到鼠标的(象素)位置。
对于鼠标的移动和拖放,另外用鼠标运动监听器mouseMotionListener。因为许多程序不需要监听鼠标运动,把两者分开可简化程序。有两个方法处理鼠标运动事件:
MOUSE_MOVED MouseMoved (MouseEvent) 鼠标在移动
MOUSE_DRAGGED MouseDragged(MouseEvent) 鼠标被拖动
下面的例程演示简单的鼠标监听,并在屏幕上输出鼠标操作的信息。
例16 本例程演示鼠标监听器,鼠标点击和运动的监听。
///
// MouseEvt.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class MyPanel extends JPanel implements MouseMotionListener{
public MyPanel() {
addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent evt) {
if (evt.getClickCount() >= 2)
System.out.println("\n双击鼠标");
int x = evt.getX(); int y = evt.getY();
System.out.println("点击鼠标的位置\nX:" + x + "\ty: " + y);
}
});
addMouseMotionListener(this);
}
public void mouseMoved(MouseEvent evt){
System.out.println("\n鼠标正在移动");
}
public void mouseDragged(MouseEvent evt){
System.out.println("\n鼠标正在拖动");
}
}
class MyFrame extends JFrame{
public MyFrame(){
setTitle("鼠标事件示例程序");
setSize(300, 200);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
} );
Container contentPane = getContentPane();
contentPane.add(new MyPanel());
}
}
public class MouseEvt{
public static void main(String[] args){
JFrame frame = new MyFrame();
frame.setVisible(true);
}
}
///
简要说明
在MyPanel的构建器中添加了鼠标适配器来监听鼠标点击数和位置。也添加了运动监听器来处理移动和拖放操作。
分享到:
相关推荐
【Qt全局鼠标、键盘事件监听器库】是一个用于在Windows和Linux系统上实现跨平台的全局鼠标和键盘事件捕获的库。这个库基于流行的Qt框架,为开发者提供了一个便捷的方式来监听并处理系统的输入事件,无论是来自应用...
总结来说,键盘监听器是Java AWT和Swing GUI编程中一个重要的部分,它允许程序员根据用户的键盘操作来执行相应的功能。通过理解和使用`KeyListener`,开发者可以创建更具有交互性的应用程序,响应用户的键盘输入,...
Java监听键盘鼠标全局事件是指使用Java语言来监听和处理键盘和鼠标事件的技术。这项技术广泛应用于游戏开发、自动化测试、屏幕阅读器等领域。下面是Java监听键盘鼠标全局事件的详细知识点: 一、Java Native ...
"C# Hook 钩子"就是这样一个专题,它允许开发者创建一个全局监听程序,来捕获并处理系统的键盘和鼠标事件。 钩子是一种机制,由Windows操作系统提供,它允许应用程序设置一个或多个“钩子”,以便拦截特定类型的...
"鼠标及键盘监听实现"这个项目正聚焦于这一关键功能,它允许开发者跟踪并响应用户的鼠标操作和键盘输入。下面将详细阐述相关知识点。 首先,我们要理解的是什么是鼠标监听。在计算机编程中,鼠标监听通常涉及到事件...
1. **全局键盘监听**:监听所有窗口的键盘事件,无论焦点在哪个应用上。例如,你可以创建一个热键启动应用的工具,或者记录用户输入的行为分析。 2. **全局鼠标监听**:捕获鼠标的点击、移动、滚动等事件,即使焦点...
在IT行业中,有时出于安全或特定需求,我们可能需要暂时禁用用户的键盘和鼠标操作,例如在演示软件或测试环境中。本主题将深入探讨如何使用Visual C++ (VC++) 实现这一功能,主要关注如何编写C++代码来锁定键盘和...
《易语言记录键盘鼠标录制源码》是一款基于易语言5.93版本开发的软件,其主要功能是实现对用户键盘输入和鼠标操作的记录。该软件的核心技术是利用DLL(动态链接库)中的接口来捕获并记录系统级的键盘和鼠标事件,...
这种技术常用于应用程序中需要监听用户输入的情况,例如游戏外挂、键盘记录器或者辅助工具。 首先,我们需要定义一个处理键盘和鼠标事件的回调函数,它需要符合Windows定义的特定钩子函数原型。对于键盘Hook,回调...
它通过监听系统底层的键盘和鼠标事件,将这些事件转化为可读的记录,存储为日志文件或实时传输到指定服务器。这种技术的核心在于对操作系统事件驱动机制的理解和利用,能够在不影响用户正常操作的情况下,悄无声息地...
《易语言鼠标键盘使用记录器》是一款基于易语言开发的软件,主要功能是记录用户的鼠标和键盘活动。这款工具能够捕获用户在计算机上的输入行为,包括点击、滚动、按键等,为开发者或测试人员提供了方便的数据记录和...
jnativehook, 用于Java的全局键盘和鼠标侦听器 JNativeHook是一个为Java提供全局键盘和鼠标侦听器的库。 这将允许你监听全局快捷方式或者鼠标运动,否则使用纯Java就不可能。 为了完成这项任务,JNativeHook利用平台...
在QT框架下开发Linux应用程序时,获取键盘和鼠标事件是常见的需求,这有助于实现用户交互和界面控制。本文将深入探讨如何在Linux环境下利用QT库来捕获和处理这些事件。 首先,QT是一个跨平台的应用程序开发框架,...
在Java Swing中,有多种类型的监听器,例如动作监听器(ActionListener)、鼠标监听器(MouseListener)、键盘监听器(KeyListener)和窗口监听器(WindowListener)等。例如,如果我们想要在用户点击按钮时执行某些...
全局监听意味着该工具可以在任何应用程序窗口下工作,无论用户当前在哪个程序上操作,只要激活了连点器,它都能捕捉到键盘和鼠标的输入。这对于需要频繁点击的游戏场景非常有用,比如农场模拟、点击类冒险游戏或者...
在Java GUI编程中,AWT和Swing提供了多种类型的监听器,如动作监听器(ActionListener)、鼠标监听器(MouseListener)、键盘监听器(KeyListener)以及组件监听器(ComponentListener)等。这些监听器允许我们对...
标题中的“基于Electron的鼠标键盘自动点击和记录回放软件”揭示了这款软件的核心技术是Electron,它是一款用于构建跨平台桌面应用的框架,结合JavaScript、HTML和CSS等Web技术来创建桌面应用程序。软件的主要功能...
总的来说,捕获键盘和鼠标按键是通过操作系统提供的API或第三方库实现的,涉及到的操作包括设置事件监听器、定义回调函数以及解析接收到的事件信息。了解这些基本原理和方法,你就能轻松实现自己的键盘鼠标按键捕捉...
【鼠标键盘记录器】是一种特殊的软件工具,设计用于追踪并记录用户在计算机上进行的所有键盘和鼠标活动。这种工具的主要功能在于捕捉用户输入的信息,包括敲击的按键、点击的位置以及浏览的网页等,以便于事后回放或...