我在单个JPanel对象中构建一个完全绘制的Swing游戏(所有内容,包括菜单)。我在这个JPanel中有一个游戏循环,它可以处理从更新游戏状态到绘制游戏等所有内容。
现在,我需要以某种方式让玩家在某些菜单中输入自己的文字。创建新的播放器配置文件,保存其他一些信息等。我似乎找不到这样做的好方法。使用扫描仪显然是不可能的,因为这样做会中断事件调度线程,当场冻结游戏(我学到了很难)。
我得出结论,唯一的方法是使用KeyListener以某种方式记录我在键盘上按下的键。我一直在试验它的keyTyped方法,但我的结果很差。我已经能够记录我的按键,但问题是,它记录了我按下的每个键,包括退格键,控制键,TAB键等等。另外,我输入的每个字符都输出大写,不管是什么我是否有大写锁定。
我希望你能理解我在这里想要达到的目标。所以我真正的问题是:有没有简单的方法来使用KeyListener记录打字?或者是否有其他方法可以在事件调度线程中使用?
答案 0 :(得分:1)
您的选择是:
问题是KeyListener就是这样,它会侦听键事件。标准文本输入组件将其与DocumentListener组合以处理文本