Скопируйте и вставьте ярлыки, работающие только с клавишей Ctrl в приложении OSX Java
Я создал небольшое приложение, используя Netbeans 8.1 на OSX, выполнив следующие действия:
Я создал новую JForm, используя категорию "Swing GUI формы"Я добавил три меню к нему:Я добавил JDialog с текстовыми полями и связал его с третьим меню («TAnalyse»).В этом JDialog мне нужна функция копирования / вставки для текстовых полей. Проблема в том, что копирование / вставка работает только в этом диалоговом окне с «ctrl» + «c», «x» или «v», а не со стандартной клавишей osx «cmd».
Я попытался добавить следующую строку кода в конструктор JForm, но это не сработало:
KeyStroke stroke = KeyStroke.getKeyStroke(KeyEvent.VK_C, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());
Дополнительная информация: я использую JDK7 и OSX Yosemite. Смотри и чувствуй, это «Нимбус». Два других меню («Файл», «Редактировать») еще не реализованы.
Можете ли вы дать подсказку для решения?
Обновить: Я создал еще один небольшой пример с помощью построителя графического интерфейса Netbeans (Swing GUI Forms -> JDialog). Я только что добавил строку меню в JFrame и JMenuItem в GUI Builder. С замечаниями из ответа ниже я добавил вручную некоторый код в конструктор:
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);
}
Результат:
Update2: Я создал еще один небольшой пример с Netbeans GUI Builder (Swing GUI Forms -> Пример формы приложения).
Результат:
Наконец, я создал пример с Netbeans (пустой Java-файл) с немного измененным исходным кодом из ответа ниже.
Результат: