当前位置:首页 > Java

java如何操作键盘

2026-03-22 12:11:53Java

使用 Java 操作键盘的方法

通过 Robot 类模拟键盘输入

Java 的 java.awt.Robot 类可以模拟键盘和鼠标操作,适用于自动化测试或脚本控制。

import java.awt.Robot;
import java.awt.event.KeyEvent;

public class KeyboardExample {
    public static void main(String[] args) throws Exception {
        Robot robot = new Robot();
        // 模拟按下并释放A键
        robot.keyPress(KeyEvent.VK_A);
        robot.keyRelease(KeyEvent.VK_A);

        // 组合键示例:Ctrl+C
        robot.keyPress(KeyEvent.VK_CONTROL);
        robot.keyPress(KeyEvent.VK_C);
        robot.keyRelease(KeyEvent.VK_C);
        robot.keyRelease(KeyEvent.VK_CONTROL);
    }
}

通过 KeyListener 监听键盘事件

用于监听 GUI 组件(如 JFrameJPanel)的键盘输入。

import javax.swing.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

public class KeyListenerExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame("Keyboard Listener");
        frame.addKeyListener(new KeyListener() {
            @Override
            public void keyPressed(KeyEvent e) {
                System.out.println("Key Pressed: " + KeyEvent.getKeyText(e.getKeyCode()));
            }

            @Override
            public void keyReleased(KeyEvent e) {
                System.out.println("Key Released: " + KeyEvent.getKeyText(e.getKeyCode()));
            }

            @Override
            public void keyTyped(KeyEvent e) {
                System.out.println("Key Typed: " + e.getKeyChar());
            }
        });
        frame.setSize(300, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

使用 JNativeHook 监听全局键盘事件

如果需要监听系统全局键盘事件(即使窗口未聚焦),可以使用第三方库 JNativeHook

java如何操作键盘

  1. 添加依赖(Maven):

    <dependency>
     <groupId>com.github.kwhat</groupId>
     <artifactId>jnativehook</artifactId>
     <version>2.2.2</version>
    </dependency>
  2. 代码示例:

    java如何操作键盘

    
    import org.jnativehook.GlobalScreen;
    import org.jnativehook.keyboard.NativeKeyEvent;
    import org.jnativehook.keyboard.NativeKeyListener;

public class GlobalKeyListenerExample { public static void main(String[] args) { try { GlobalScreen.registerNativeHook(); } catch (Exception e) { e.printStackTrace(); }

    GlobalScreen.addNativeKeyListener(new NativeKeyListener() {
        @Override
        public void nativeKeyPressed(NativeKeyEvent e) {
            System.out.println("Pressed: " + NativeKeyEvent.getKeyText(e.getKeyCode()));
        }

        @Override
        public void nativeKeyReleased(NativeKeyEvent e) {
            System.out.println("Released: " + NativeKeyEvent.getKeyText(e.getKeyCode()));
        }

        @Override
        public void nativeKeyTyped(NativeKeyEvent e) {
            // 不常用
        }
    });
}

}


#### 通过 `System.in` 读取控制台键盘输入

适用于命令行程序的简单键盘输入。

```java
import java.util.Scanner;

public class ConsoleInputExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Enter text:");
        String input = scanner.nextLine();
        System.out.println("You entered: " + input);
        scanner.close();
    }
}

注意事项

  • Robot 类需要程序具有图形环境权限,可能在某些无头(headless)环境中失效。
  • JNativeHook 提供了跨平台的全局键盘监听能力,但需注意权限和性能影响。
  • 监听键盘事件时,避免阻塞主线程或执行耗时操作。

标签: 键盘操作
分享给朋友:

相关文章

uniapp 跟随键盘

uniapp 跟随键盘

uniapp 键盘弹出时调整布局的方法 在 uniapp 中实现页面内容跟随键盘弹出调整布局,可通过以下方式实现: 监听键盘高度变化 使用 uni.onKeyboardHeightChange 监听…

vue实现操作权限

vue实现操作权限

Vue 实现操作权限的方法 使用自定义指令 在 Vue 中可以通过自定义指令来实现操作权限控制。创建一个指令,检查用户是否有权限执行某个操作。 // 注册全局指令 Vue.directive('pe…

vue怎么实现弹出键盘

vue怎么实现弹出键盘

在Vue中实现弹出键盘 在Vue中实现弹出键盘通常需要结合HTML5的输入元素和JavaScript的事件处理。以下是一个常见的方法: <template> <div>…

vue怎么实现键盘搜索

vue怎么实现键盘搜索

监听键盘事件 在Vue中可以通过v-on或@指令监听键盘事件。例如监听回车键触发搜索: <input @keyup.enter="handleSearch" /> 封装搜索方法 在met…

css制作键盘

css制作键盘

使用CSS制作键盘效果 通过CSS可以模拟一个虚拟键盘的外观和交互效果,以下是实现方法: 键盘布局结构 <div class="keyboard"> <div class="k…

js实现数据库操作

js实现数据库操作

JavaScript 实现数据库操作的方法 JavaScript 可以通过多种方式操作数据库,包括浏览器端的本地存储、服务器端的数据库连接以及使用 ORM 框架等。以下是几种常见的实现方法: 浏览器…