我希望在用户按下某个键时执行特定的函数。这将在控制台中运行,代码使用Java编写。我应该怎么做?我几乎不了解按键/按下事件,所以需要一份详细的说明。
在命令行环境下无法检测事件。您应该提供一个图形用户界面,然后可以使用 KeyListener
类来检测键盘事件。
或者,您可以从标准输入读取命令,然后执行适当的函数。
import java.util.Scanner;
public class ScannerTest {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
boolean exit = false;
while (!exit) {
System.out.println("Enter command (quit to exit):");
String input = keyboard.nextLine();
if(input != null) {
System.out.println("Your input is : " + input);
if ("quit".equals(input)) {
System.out.println("Exit programm");
exit = true;
} else if ("x".equals(input)) {
//Do something
}
}
}
keyboard.close();
}
}
只需运行ScannerTest并键入任何文本,然后按“Enter”即可。
keyboard.nextLine()
并不能检测按键,它会在用户按下回车键后返回该行的内容。 - Daniel Cheung
JNativeHook
这样的框架可以通过访问Windows API来提供全局钩子来捕获键盘事件。 - Zabuzard