如何使用Java Swing重新映射键盘键?
答
如果我明白这个问题,那就是如何明确定义特定键的行为。以下是我如何实现键盘快捷键 - 希望它可以回答你的问题。在我的下面的例子中,我相信你可以将'this'改为你希望显式设置键盘行为的特定组件,并覆盖其默认行为。我通常在面板或框架的背景下这样做。
private void addHotKey(KeyStroke keyStroke, String inputActionKey, Action listener) {
ActionMap actionMap = this.getActionMap();
InputMap inputMap = this.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
inputMap.put(keyStroke, inputActionKey);
actionMap.put(inputActionKey, listener);
}
inputActionKey只是一个用于映射操作的任意键字符串。调用此方法来侦听DEL键的示例:
KeyStroke keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0);
Action listener = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
// delete something...
}
};
addHotKey(keyStroke, "MainWindowDEL", listener);
这是仅用于您的程序吗?就像在游戏中一样(编辑控制列表)。或者你的意思是整个系统键盘布局? – 2009-09-20 15:44:13
@MartijnCourteaux我正在寻找一些东西来重新映射我的pageup键到(ctrl + win + left)和pagedown到(crl + win + right) – 2015-10-28 12:45:06
@KoenVanLooveren:在OS X上,搜索Karabiner。对于其他平台,我猜想类似的应用程序将存在。 – 2015-10-28 12:50:50