问题描述
如果您使用的是第三方L&F实施,则可能不支持Mac的本机键盘快捷键。JTextField
设置L&F后,以下代码应为还原Mac的键盘快捷键:
InputMap im = (InputMap) UIManager.get("TextField.focusInputMap");
im.put(KeyStroke.getKeyStroke(KeyEvent.VK_C, KeyEvent.Meta_DOWN_MASK), DefaultEditorKit.copyAction);
im.put(KeyStroke.getKeyStroke(KeyEvent.VK_V, KeyEvent.Meta_DOWN_MASK), DefaultEditorKit.pasteAction);
im.put(KeyStroke.getKeyStroke(KeyEvent.VK_X, KeyEvent.Meta_DOWN_MASK), DefaultEditorKit.cutAction);
当然,只有在检测到该应用程序正在Mac上运行时,才需要执行此操作,这样才不会影响其他操作系统的键盘映射。
解决方法
我有一个要在Mac OS X上运行的Java Swing应用程序。我想使用普通的Mac复制/粘贴快捷方式将文本复制/粘贴到Java应用程序的文本字段中。
Ctrl
+ c
&Ctrl
+ v
可以解决问题,但我想改用Command
+ c
&Command
+
v
。我怎样才能做到这一点?