Java 如何在Mac中使用Command-c/Command-v快捷方式复制/粘贴文本?

Java 如何在Mac中使用Command-c/Command-v快捷方式复制/粘贴文本?,java,swing,copy,paste,macos,Java,Swing,Copy,Paste,Macos,我有一个Java Swing应用程序,我想在Mac OS X上运行。我想使用普通的Mac复制/粘贴快捷方式将文本复制/粘贴到Java应用程序中的文本字段 Ctrl+c&Ctrl+v可以做到这一点,但我想改用Command+c&Command+v。我该怎么做呢?您是否见过、知道或正在使用Eclipse维护的SWT(标准小部件工具包)?它有一个按键(SWT.COMMAND)作为命令。您正在运行纯Swing吗?如果是这样的话,它应该自动完成(注意,如果不使用应用程序包,它可能不会生成小菜单动画)。如果

我有一个Java Swing应用程序,我想在Mac OS X上运行。我想使用普通的Mac复制/粘贴快捷方式将文本复制/粘贴到Java应用程序中的文本字段


Ctrl+c&Ctrl+v可以做到这一点,但我想改用Command+c&Command+v。我该怎么做呢?

您是否见过、知道或正在使用Eclipse维护的SWT(标准小部件工具包)?它有一个按键(SWT.COMMAND)作为命令。

您正在运行纯Swing吗?如果是这样的话,它应该自动完成(注意,如果不使用应用程序包,它可能不会生成小菜单动画)。如果没有,那么您必须查阅文档,了解您正在使用的任何API


刚刚测试过,它在雪豹上运行良好。

如果您使用的是第三方L&F实现,它可能不支持Mac的本机键盘快捷键。设置L&F后,以下代码应恢复Mac的
JTextField
s键盘快捷键:

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上运行时,您才需要这样做,这样您就不会影响其他操作系统的键盘映射。

我使用的是Swing。有没有办法在Swing中实现这一点?我有一本Mac book,只有Ctrl+v可以在JTextField中粘贴文本。。。命令+v不起作用。您使用的是什么版本的操作系统?另外,您使用的是什么外观和感觉?如果这是默认设置,那么绑定应该可以工作(如果不能工作,您可能需要向Apple提交错误报告)。我刚刚测试了一个非常基本的Swing应用程序,cmd-c/v运行得很好,但我在雪豹上使用了默认的外观。+1(因为我不使用MAC)我一直忘记了MAC上的
META_DOWN_MASK
是命令键。与其硬编码值,不如使用。我在下面的代码中运行此代码:if(System.getProperty(“os.name”).toupercase().startsWith(“MAC”))