gpt4 book ai didi

java - 使用 keyPressed 检测键盘方向键

转载 作者:行者123 更新时间:2023-11-30 05:17:13 36 4
gpt4 key购买 nike

大家好,

在这里了解到 Java 控制台不太支持键盘输入后,我改用了 Swing 和 AWT。我现在的问题是如何检测何时使用键盘方向键(非数字键盘)。我的代码(如下)除了在按下下、上、左、右键时打印一个“小框”字符外,没有做更多的事情。例如,这个小方框字符与 CTRL 和 ALT 键使用的字符没有什么不同。有谁知道键盘方向键的实际身份是什么,以便我可以在我的应用程序中为它们编码?

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

public class KeyChecker extends JFrame {
JLabel keyLabel = new JLabel("Hit any key");

public KeyChecker() {
super("Hit a Key");
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout(FlowLayout.CENTER));
KeyMonitor monitor = new KeyMonitor(this);
setFocusable(true);
addKeyListener(monitor);
add(keyLabel);
setVisible(true);
}

public static void main(String[] arguments) {
new KeyChecker();
}
}

class KeyMonitor extends KeyAdapter {
KeyChecker display;

KeyMonitor(KeyChecker display) {
this.display = display;
}

public void keyPressed(KeyEvent event) {
display.keyLabel.setText("" + event.getKeyChar());
display.repaint();
}
}

最佳答案

您应该做的是查看keyPressed中的虚拟键代码而不是键字符。就像这样:

public void keyPressed(KeyEvent event) {
switch (event.getKeyCode()) {
case KeyEvent.VK_UP:
// up arrow
break;
case KeyEvent.VK_DOWN:
// down arrow
break;
case KeyEvent.VK_RIGHT:
// right arrow
break;
case KeyEvent.VK_LEFT:
// left arrow
break;
}
}

参见http://java.sun.com/javase/6/docs/api/java/awt/event/KeyEvent.html获取完整信息。

关于java - 使用 keyPressed 检测键盘方向键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/573918/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com