我正在为我们的游戏重构大量代码,以使对象耦合尽可能不存在(以便于测试和未来的实现)。目前,我的 JFrame 侦听键,将其发送到 eventmanager 类,该类再次需要对每个对 keyinput 执行操作并调用这些对象的方法的对象的引用。
保留响应对象内的键事件的责任似乎是一个好主意,例如,这将允许我更改当前屏幕并让新屏幕表现不同而无需检查不同的全局状态(如切换到游戏菜单)。
但我不知道如何为我的自定义对象实现 keylistener,它似乎必须是一个 swing/awt 组件。如何将 KeyListener 添加到自定义对象?我知道如何创建自定义事件和自定义侦听器,但不知道如何通过这些方法捕获键盘输入。