我有一个Java Swing应用程序,我想在Mac OS X上运行。我想使用普通的Mac复制/粘贴快捷方式将文本复制/粘贴到我的Java应用程序中的文本字段。
Ctrl + c & Ctrl + v 可以解决问题,但我想使用 Command + c & 命令 + v 。我怎么能这样做?
答案 0 :(得分:19)
如果你使用的是第三方L& F实现,它可能不支持Mac的原生键盘快捷键。设置L& F后,以下代码应恢复Mac JTextField
的键盘快捷键:
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上运行,您只需执行此操作,这样就不会影响其他操作系统的键盘映射。
答案 1 :(得分:1)
您是否看过,知道或正在使用Eclipse维护的SWT(标准窗口小部件工具包)?这有一个按键(SWT.COMMAND)用于命令。
答案 2 :(得分:1)
你在运行纯粹的Swing吗?如果是这样,它应该自动执行此操作(请注意,如果您不使用Application包,它可能不会生成小菜单动画)。如果没有,那么您将不得不查阅您正在使用的API的文档。
刚试过它,它在Snow Leopard上运行良好。