如何使用Java重新映射鍵盤上的某個鍵,以便我可以給鍵賦予新的含義?如何使用Java Swing重新映射鍵盤鍵?
0
A
回答
-2
0
真的不明白你的問題的情況下。但理論上,您可以截取所有KeyEvent,然後根據您的條件派發不同的KeyEvent。 Global Event Dispatching可能會給你一些想法。
1
如果我明白這個問題,那就是如何明確定義特定鍵的行爲。以下是我如何實現鍵盤快捷鍵 - 希望它可以回答你的問題。在我的下面的例子中,我相信你可以將'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);
相關問題
- 1. 如何重新映射鍵盤按鍵
- 2. 如何重新映射Java Swing中的NumLock鍵?
- 3. WPF鍵盤重映射
- 4. 重新映射其中一個鍵盤
- 5. Java:鍵盤映射值
- 6. 如何在Win32上使用Perl重新映射鍵盤?
- 7. VSCode重映射鍵盤快捷鍵
- 8. 將鼠標事件重新映射到鍵盤按鍵
- 9. 羅技k750鍵盤上的Autohotkey Fn鍵重新映射
- 10. 鍵重映射
- 11. 重新映射線路鍵
- 12. 的IntelliJ如何映射鍵盤快捷鍵,以新的「模板」
- 13. Delphi 2006重構鍵盤映射
- 14. 如何重新映射在Ubuntu上的MATLAB複製粘貼鍵盤快捷鍵?
- 15. 帶有「:」鍵的vim鍵盤映射
- 16. 鍵盤映射綁定
- 17. 無法重新映射「輸入」的Swing鍵綁定
- 18. Swing屏幕鍵盤
- 19. 用更多修飾符重新映射鍵盤
- 20. Windows 7上的Onenote 2016鍵盤重新映射
- 21. jQuery插件重新映射數字鍵盤
- 22. 在Windows中用於德語鍵盤的Atom IDE鍵盤映射
- 23. Autohotkey:重新映射箭頭鍵
- 24. AHK鍵重新映射ALT標籤
- 25. Java泛型 - 映射(鍵入)映射
- 26. 如何在鍵盤上映射重音字符xml
- 27. 暫時禁用鍵盤映射在vim
- 28. 哪些鍵盤映射仍然可用?
- 29. 如何映射映射的鍵和值?
- 30. 如何使用Fluent API映射外鍵
這是僅用於您的程序嗎?就像在遊戲中一樣(編輯控制列表)。或者你的意思是整個系統鍵盤佈局? – 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