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
source share