Как реализовать Ctrl + Z / Command + Z в Java / Swing?

Я работаю над маленьким Java-апплетом, которому нужна функция отмены / повтора. Вот код для настройки горячих клавиш (отлично работает в Windows).

Мой вопрос: как заставить его использовать команду + Z на Mac? Стоит мне просто проверить System.getProperty ("os.name") или есть более элегантная альтернатива ??

private void setupUndoHotkeys() {
    String UNDO = "Undo action key";
    String REDO = "Redo action key";
    Action undoAction = new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
            undo();
        }
    };
    Action redoAction = new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
            redo();
        }
    };

    getActionMap().put(UNDO, undoAction);
    getActionMap().put(REDO, redoAction);

    InputMap[] inputMaps = new InputMap[] {
        getInputMap(JComponent.WHEN_FOCUSED),
        getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT),
        getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW),
    };
    for(InputMap i : inputMaps) {
        i.put(KeyStroke.getKeyStroke("control Z"), UNDO);
        i.put(KeyStroke.getKeyStroke("control Y"), REDO);
    }
}

Спасибо,

Нил

6
задан Neal Ehardt 16 December 2010 в 22:13
поделиться