- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
首先,这不是用于键盘记录器,它是用于 roguelike 游戏中的输入,其中我的 JFrame
中的 JLabel
会说“姓名:”并且我希望能够输入 A-Za-z。在查看了很多键输入选项之后,我又回到了开始使用 KeyStroke
和 Action
的地方。
我想知道是否有一种方法可以添加一系列键,而不是重复这 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);
}
但我认为您应该更喜欢带有 DocumentListener
的 JTextField
。
关于java - 使用 KeyStroke 进行输入,是否有更简单的方法来读取 A - Z 键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11308492/
我正在尝试进行按键绑定(bind)。我想生成一个 KeyStroke,仅当按住控制键时才会执行操作。我不明白我做错了什么,我对其他键绑定(bind)使用相同的技术(Control+up、Control
我正在使用以下标准 GenerateKey 代码: void GenerateKey ( int vk , BOOL bExtended) { KEYBDINPUT kb={0}; INPU
好的,所以我有一个带有 Hammerspoon 的脚本,可以为我执行按键操作。简单的例子: hs.hotkey.bind({'cmd','alt','ctrl'}, "b", function()
我该如何制作具有多个修饰符蒙版的梯形失真校正?由于缺乏明确指定命令掩码,Apple 建议使用以下方法来获取掩码: Toolkit.getDefaultToolkit().getMenuShortcut
我想知道如何声明新的 KeyStroke - 按下和释放?例如我可以这样做: KeyStroke.getKeyStroke("pressed F10"); KeyStroke.getKeyStroke
我有一个问题,为什么这个 KeyStroke 的修饰符从 128 变成了 130? package de.roth.jsona.keyevent; import java.awt.event.Inpu
如何在 Delphi 中使用 TTouchKeyboard,以便它可以将击键发送到其他程序。例如,我想使用 TTouchKeyboard 组件在浏览器中输入密码。我不知道如何让浏览器在我点击键盘时保持
我想将 KeyStrokes 添加到 CheckBox 组中,因此当用户点击 1 时,击键将选择/取消选择第一个 JCheckBox。 我已经编写了这部分代码,但它不起作用,有人可以指出我正确的方向吗
我即将在 swing 应用程序中使用键盘绑定(bind)作为数字键盘输入键,但该键很难捕捉。我见过的所有例子都依赖于类似 key == KeyEvent.VK_KP_LEFT 其中 VK_KP_LEF
阅读了一些教程后,我决定从 KeyListeners 切换到 KeyBindings。我想我已经理解它们是如何工作的,但我不明白为什么这个小程序即使我不释放 key 也会检测到 key 释放。编辑:我
我的 UI 中的用例是根据双击 JList 中的项目来填充两个 JTextField 组件。简单的方法是使用 JCheckBox 填充 jTextField1 如果复选框被选中,则填充另一个(如果未选
关于覆盖 equals() 和 hashCode() 的几个答案描述了对两者的需求以及在 Java 中将它们用作 HashMap 中的键的应用。我的问题是,将 Java KeyStroke 类作为键放
我想控制哪个击键属于哪个Jcomponent。我什至想了解如何删除与 Jcomponent 关联的默认击键并将它们替换为其他喜欢的击键。 我关注了这个神谕tutorial ,它给出了一个 JButto
当用户按下 Enter 键时,我需要将焦点转移到另一个元素上,所以我成功地通过这种方式在大多数元素上注册了 KeyStroke: this.getInputMap( ).put( KeyStroke
我想为 键,然后在我的 JFrame 上使用它。 我正在使用以下代码尝试为 的击键? 最佳答案 根据 the documentation对于 getKeyStroke(char): Returns
在带有 Swing GUI 的小型 Java 独立程序中,我将 JMenuItem 与 Accelerator 一起使用 - 基本上没有任何问题: JMenuItem item = new JMe
我真正想做的是为 Google Chrome 浏览器添加更多快捷方式。截至目前,我正在使用 window.addEventListener('keyup', keyCheck, false); . 然
是否有 KeyStroke 的鼠标等效类?我正在寻找某种围绕 MouseEvent 的包装器来描述按下了哪个按钮(我可以通过 SwingUtilities 获得它),以及使用的任何修饰符。这个想法是我
我怎样才能最好地实现一个系统,通过 iPhone 和/或 Droid 将击键/命令通过 WiFi 或蓝牙发送到台式机或笔记本电脑?有 VLC、Keynote 和其他应用程序的应用程序可以执行此操作,所
我无法将 Control-Backspace 键映射到 KeyStroke。以下内容对我来说毫无意义。 import java.awt.event.KeyEvent; import javax.swi
我是一名优秀的程序员,十分优秀!