如何检测java中的箭头键?
我知道如何实现关键侦听器;这不是问题。
public void keyTyped(KeyEvent event) {
if (event.getKeyChar() == KEY_LEFT) {
cTDirection = LEFT;
}
if (event.getKeyChar() == 40) {
cTDirection = DOWN;
}
if (event.getKeyChar() == 39) {
cTDirection = RIGHT;
}
if (event.getKeyChar() == 38) {
cTDirection = UP;
}
}
我应该在 LEFT_KEY
/ 40 / 39 / 38 的位置放什么?当我创建一个按键监听器并输入按键时,我相信我得到了 37 - 40。我不知道该放什么来监听方向键。
I know how to implement a key listener; that's not the problem.
public void keyTyped(KeyEvent event) {
if (event.getKeyChar() == KEY_LEFT) {
cTDirection = LEFT;
}
if (event.getKeyChar() == 40) {
cTDirection = DOWN;
}
if (event.getKeyChar() == 39) {
cTDirection = RIGHT;
}
if (event.getKeyChar() == 38) {
cTDirection = UP;
}
}
What do I put where the LEFT_KEY
/ 40 / 39 / 38? When I created a keylistener and type in the keys, I believe I got 37 - 40. I don't know what to put there to listen for just the arrow keys.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
我建议使用:
重复
VK_DOWN、VK_LEFT、VK_RIGHT
。数字键盘有单独的代码:
VK_KP_UP、VK_KP_DOWN、VK_KP_LEFT、VK_KP_RIGHT
(如果您需要)。有关所有代码,请参阅 KeyEvent 。
I would recommend using:
repeating with
VK_DOWN, VK_LEFT, VK_RIGHT
.There are seperate codes for the numeric keypad:
VK_KP_UP, VK_KP_DOWN, VK_KP_LEFT, VK_KP_RIGHT
if you need them.See KeyEvent for all of the codes.
KeyEvent.VK_LEFT
、KeyEvent.VK_RIGHT
等。此外,您应该使用
getKeyCode
,而不是getKeyChar
。getKeyChar
用于实际对应于字符(字母、数字、空格等)的键。KeyEvent.VK_LEFT
,KeyEvent.VK_RIGHT
, etc.Also, you should use
getKeyCode
, notgetKeyChar
.getKeyChar
is for keys that actually correspond to characters (letters, numbers, spaces, etc.).使用
其他按键有:
KeyEvent.VK_UP
KeyEvent.VK_RIGHT
KeyEvent.VK_DOWN
Use
The other keys are:
KeyEvent.VK_UP
KeyEvent.VK_RIGHT
KeyEvent.VK_DOWN
以下是我为使其工作而所做的工作:
对我来说,如果我将它放在 KeyPressed 中,它就不起作用,但如果我将它放在 KeyTyped 中,它就可以正常工作。
Here is what I did to make it work:
For me it isn't working if I put it in KeyPressed but works fine if I put it in KeyTyped.
使用
getKeyCode()
方法,并将返回值与KeyEvent.VK_LEFT
、KeyEvent.VK_RIGHT
、KeyEvent.VK_UP
进行比较和KeyEvent.VK_DOWN
常量。Use the
getKeyCode()
method and compare the returned value againsKeyEvent.VK_LEFT
,KeyEvent.VK_RIGHT
,KeyEvent.VK_UP
andKeyEvent.VK_DOWN
constants.首先声明 init 方法
,然后使用实现 KeyListner 的内部类,
您也可以使用适配器而不是编写 Keyreleased & keyTyped ....如你所知
first declare init method
then use inner class which implements KeyListner
you can also use adapter instead of writing Keyreleased & keyTyped .... as you know
顺便说一句,在 KeyAdapter -> keyTyped getCharCode() 不起作用
您应该尝试 keyPressed 或 keyReleased
btw in KeyAdapter -> keyTyped getCharCode() didn't work
You should try keyPressed or keyReleased