我在OSX上使用Netbeans 8.1创建了一个小应用程序,具体步骤如下:
- 我使用“Swing GUI forms”类别创建了一个新的JForm
- 我添加了三个菜单:
- 我添加了一个带有文本字段的JDialog,并将其链接到第三个菜单(“TAnalyse”)。
在这个JDialog中,我需要对文本字段进行复制/粘贴功能。问题是:只能使用“ctrl”+“c”,“x”或“v”来在此对话框中执行复制/粘贴操作,不能使用OSX标准的“cmd”键。
我尝试将以下代码行添加到JForm的构造函数中,但不起作用:
KeyStroke stroke = KeyStroke.getKeyStroke(KeyEvent.VK_C, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());
额外信息: 我正在使用JDK7和OSX Yosemite。外观是“Nimbus”。另外两个菜单(“文件”,“编辑”)尚未实现。
你能给出解决方案的提示吗?
更新: 我使用Netbeans GUI构建器(Swing GUI表单 -> JDialog)创建了另一个小例子。我只是在JFrame中添加了一个菜单栏和GUI构建器中的JMenuItem。根据下面答案中的注释,我手动添加了一些代码到构造函数中:
public NewJDialogGUI(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
AbstractAction copyAction = new DefaultEditorKit.CopyAction();
copyAction.putValue(Action.ACCELERATOR_KEY,KeyStroke.getKeyStroke(KeyEvent.VK_C, MASK));
this.jMenuItem1.setAction(copyAction);
this.jMenuItem1.setText("Copy");
this.jMenuItem1.setMnemonic(KeyEvent.VK_C);
}
结果如下:
结果是:
更新2: 我使用Netbeans GUI构建器(Swing GUI Forms -> Application sample form)创建了另一个小例子。
结果如下:
最后,我使用Netbeans(空Java文件)创建了一个示例,其中源代码稍微修改了下面的答案。
结果如下: