los accesos directos de copiar y pegar solo funcionan con la tecla Ctrl en la aplicación Java OSX
Creé una pequeña aplicación usando Netbeans 8.1 en OSX, siguiendo estos pasos:
Creé un nuevo JForm usando la categoría "Formularios de GUI de Swing"Le agregué tres menús:Agregué un JDialog con campos de texto y lo vinculé al tercer menú ("TAnalyse").En este JDialog necesito la funcionalidad de copiar / pegar para los campos de texto. El problema es: copiar / pegar solo funciona en este cuadro de diálogo con "ctrl" + "c", "x" o "v" y no con la tecla estándar "cmd" de osx.
Intenté agregar la siguiente línea de código al constructor de JForm pero no funcionó:
KeyStroke stroke = KeyStroke.getKeyStroke(KeyEvent.VK_C, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());
Información adicional: Estoy usando JDK7 y OSX Yosemite. Mirar y sentir es "Nimbus". Los otros dos menús ("Archivo", "Editar") aún no están implementados.
¿Puedes dar una pista para una solución?
Actualizar: Creé otro pequeño ejemplo con el generador de GUI de Netbeans (Swing GUI Forms -> JDialog). Acabo de agregar una barra de menú a JFrame y a JMenuItem en el generador de GUI. Con los comentarios de la respuesta a continuación, agregué manualmente un código al constructor:
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);
}
El resultado es:
Actualización2: Creé otro pequeño ejemplo con el generador de GUI de Netbeans (Swing GUI Forms -> Application sample form).
El resultado es:
Finalmente, creé un ejemplo con Netbeans (archivo Java vacío) con el código fuente ligeramente modificado de la respuesta a continuación.
El resultado es: