gpt4 book ai didi

java - 使用 KeyStroke 进行输入,是否有更简单的方法来读取 A - Z 键?

转载 作者:行者123 更新时间:2023-11-30 11:43:28 25 4
gpt4 key购买 nike

首先,这不是用于键盘记录器,它是用于 roguelike 游戏中的输入,其中我的 JFrame 中的 JLabel 会说“姓名:”并且我希望能够输入 A-Za-z。在查看了很多键输入选项之后,我又回到了开始使用 KeyStrokeAction 的地方。

我想知道是否有一种方法可以添加一系列键,而不是重复这 56 次:

Action a = new AbstractAction() {

public void actionPerformed(ActionEvent e) {
// add a to string
}
};
getInputMap().put(KeyStroke.getKeyStroke("a"), "a");
getActionMap().put("a", a);

我的意思是,我可以这样做,只需写一些复制和粘贴,但我真的很讨厌那样。必须有一个比使用 KeyListener 更优雅的解决方案,这不是很好,因为这意味着我必须以某种方式获得焦点,但我的窗口只是一个 JFrame 有一个大JLabel 在里面。

此外,我现在只用了几天 java,所以这就是为什么我可能缺少一个非常普遍的解决方案,但如果有的话,请分享!表示赞赏。

最佳答案

这是一个解决方案:

for (char c = 'a'; c <= 'z'; c++) {
String ks = String.valueOf(c);
getInputMap().put(KeyStroke.getKeyStroke(ks), ks);
getActionMap().put(ks, a);
ks = ks.toUpperCase();
getInputMap().put(KeyStroke.getKeyStroke(ks), ks);
getActionMap().put(ks, a);
}

但我认为您应该更喜欢带有 DocumentListenerJTextField

关于java - 使用 KeyStroke 进行输入,是否有更简单的方法来读取 A - Z 键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11308492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com