[英]Why doesn't my code go in the keyPressed() method? (Even if i press keys)
[英]What wrong with my code , I can't use KeyPressed method?
public void run() {
setSize(700,700);
setGame();
}
public GObject drawPlayer() {
GOval player = new GOval(getWidth()/2,getHeight()/2,10,10);
player.setFilled(true);
player.setFillColor(Color.red);
return player;
}
public void keyPressed(KeyEvent e) {
switch(e.getKeyCode()) {
case KeyEvent.VK_UP: Player.move(0, -10);break;
case KeyEvent.VK_DOWN: Player.move(0, 10);break;
case KeyEvent.VK_LEFT: Player.move(-10, 0);break;
case KeyEvent.VK_RIGHT: Player.move(10, 0);break;
}
}
public GRect object;
public void setGame() {
setObject();
GObject Player = drawPlayer();
add(Player);
addKeyListeners();
}
然后,我为播放器创建了一个椭圆形,我使用addKeyListeners方法检测键。运行时,我无法使用arrowkey移动播放器对象? 我的代码有什么问题???
假设上面的代码在扩展GraphicsProgram
的类中,那是有效的代码,应按编写的方式工作。 您正在检查正确的键代码(尽管确保它们在输入设备上未以某种方式重新映射),但是您正确添加了addKeyListeners()
。
一个难题是GraphicsProgram
对象必须具有焦点,否则键将无法识别。 要进行测试,您可以启动该程序,然后立即在applet窗口中单击以获取焦点。 此时,应该识别密钥。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.