[英]Java AWT KeyListener not working
我一直在玩Java,并添加了KeyListener。 当我键入一个键时,它会显示“ 0”,并且我希望它显示键代码。
Key.java
import java.awt.event.*;
public class Key implements KeyListener {
public void keyPressed(KeyEvent e) {
}
public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e) {
System.out.println("TYPED: " + Integer.toString(e.getKeyCode()));
}
}
Main.java
public void init() {
addKeyListener(new Key());
addMouseListener(new Mouse());
this.setBackground(new Color(100, 100, 255));
this.setSize(screen);
}
感谢您的所有帮助!
只需阅读文档:
void keyTyped(KeyEvent e)
键入键后调用。 有关键类型事件的定义,请参见KeyEvent的类描述。
因此,通过描述:
public int getKeyCode()
返回与此事件中的键关联的整数keyCode。 返回:键盘上实际键的整数代码。 ( 对于KEY_TYPED事件,keyCode为VK_UNDEFINED 。)
常量VK_UNDEFINED
为:
public static final int VK_UNDEFINED = 0;
所以这完全正常,您只会得到0。
您应该使用:
public void keyTyped(KeyEvent e) {
System.out.println("TYPED: " + e.getKeyChar());
}
这是使用这三种方法的示例 。
对于KEY_TYPED事件,键码未定义。 检查Java文档: http://docs.oracle.com/javase/6/docs/api/java/awt/event/KeyEvent.html#getKeyCode()
: http://docs.oracle.com/javase/6/docs/api/java/awt/event/KeyEvent.html#getKeyCode()
使用getKeyChar()代替。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.