How to implement Ctrl + Z / Command + Z in Java / Swing?

I am working on a small Java applet that needs undo / redo functionality. Here is the code for setting hotkeys (works great on Windows).

My question is: how do I get it to use the + Z command on mac? Should I just check System.getProperty ("os.name") or is there a more elegant alternative?

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); } } 

Thanks,

Nile

+4
source share
1 answer

Oh no, I found it here http://www.devdaily.com/blog/post/jfc-swing/how-program-apple-command-key-keystroke-java-swing-mac-osx

This should be canceled on any platform.

 KeyStroke.getKeyStroke(KeyEvent.VK_Z, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()) 
+8
source

Source: https://habr.com/ru/post/1332414/


All Articles