【发布时间】:2012-02-23 17:46:44
【问题描述】:
我有一个JPanel,其中包含一些其他可以做事的对象。我将通过讨论一些圆形对象(由我创建的圆形类定义)和一个方形对象(类似)来简化示例。
圆圈在屏幕上随机移动,而正方形则原地不动。我的意图是使用箭头按钮移动方块。 当前的设计是有一个带有while循环的线程,该循环包含一个延迟,该延迟在其运行方法中设置“刷新率”。
我正在尝试所有我知道的方法来捕捉箭头键并在球在屏幕上运行时移动方块。
如何捕获按键(示例中的箭头),以便知道将方块移动到哪里?
我尝试在jpanel 中实现keylistener,但没有成功。当我尝试在运行中使用KeyEvent 时,出现异常。
请救救我。 :)
编辑:
感谢您提供的信息。我想进一步帮助解决这个问题 -
假设我有以下代码:
this.getInputMap().put(KeyStroke.getKeyStroke("UP"), "actionName");
this.getInputMap().put(KeyStroke.getKeyStroke("DOWN"), "actionName");
this.getActionMap().put("actionName",
new AbstractAction("actionName") {
public void actionPerformed(ActionEvent evt) {
//dostuff
}
}
);
如何区分 UP 和 DOWN 按键?我需要改变什么?
谢谢!我有点新手,我知道:)
【问题讨论】:
-
请编辑您的问题以显示异常文本和堆栈跟踪的前几行。
-
使用 KeyEventDispatcher:stackoverflow.com/questions/286727/…(第二个答案)
标签: java multithreading swing jpanel keylistener