java - 如何在特定事件期间更改 KeyListener 执行的操作
问题描述
我正在尝试使用 Java Swing 制作一个简单的 RPG 游戏。游戏由键盘使用 Key Listener 控制。问题是我需要在特定事件期间更改“键绑定”,例如在玩家和 NPC 之间的对话期间。假设游戏给了我 3 个对话选择。要选择其中之一,我需要按键盘上的 1、2 或 3。然后在选择其中一个之后对话继续,然后游戏给了我另外 4 个选择。现在我希望能够再次使用 1、2、3 和 4,但它们已被使用,我不知道如何重新绑定它们。
解决方案
对此有两种不同的方法。首先,您可以使用 API,例如 Key Bindings API。键绑定允许您在焦点上激活它,而不是在组件上。这篇文章应该完美地回答你的问题。
仅供快速参考,以下是如何将单个密钥与 API 绑定:
myComponent.getInputMap().put("userInput", "myAction");
myComponent.getActionMap().put("myAction", action);
第二种方法涉及扩展 AbstractAction 类。一个例子是:
public class DownAction extends AbtractAction {
@Override
public void actionPerformed(ActionEvent e) {
//code here
}
}
该视频逐步展示了如何执行此操作
推荐阅读
- typescript - 在 Typscript 可区分联合中省略整个类型
- python - IP 捕获或主机名的正则表达式
- python - 如何计算python函数的执行时间?
- c++ - 使用 cmake 进行墨西哥
- javascript - querySelector 似乎正在从输入 id="submit" 和另一个输入 type="submit" 中识别“#submit”
- python - 如何使用 Python 停止/删除 GCP Compute 实例
- python - 所选值的总最大值
- swift - 在 Swift 中为 UIButton 的文本添加基本的发光效果
- python - 如何使用字典执行分类,其中每个键都是标签,每个值都是数据框?
- c# - 为什么这个插入语句会抛出 $25 的 sql 异常