Ich arbeite an einem kleinen Java-Applet, das Funktionen zum Rückgängigmachen/Wiederherstellen benötigt. Hier ist Code zum Einrichten der Hotkeys (funktioniert gut unter Windows).Wie implementiere ich Strg + Z/Befehl + Z in Java/Swing?
Meine Frage ist: Wie mache ich es Befehl + Z auf Mac? Soll ich einfach System.getProperty ("os.name") überprüfen oder gibt es eine elegantere 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);
}
}
Danke,
Neal
Dies funktioniert für Rückgängig (Strg-Z vs. cmd-Z), aber nicht für Wiederholen (Strg-Y vs Shift-Cmd-Z). Ich mache mir Sorgen, dass os.name für Redo key stroke benötigt wird. –
@ChristopherBruns Ich fürchte, du hast Recht. Wenn es Komfort ist, verwendete Microsoft Office Mac bis 2011 Cmd + Y. –