4
실행 취소/다시 실행 기능이 필요한 작은 Java 애플릿을 만들고 있습니다. 다음은 단축키를 설정하는 코드입니다 (Windows에서 잘 작동 함).Java/Swing에서 Ctrl + Z/Command + Z를 어떻게 구현합니까?
내 질문은 : 어떻게 내가 그것을 사용하는 명령 + 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);
}
}
감사합니다,
닐
이 취소 작동 (CTRL-Z 대 cmd를-Z),하지만 다시 실행을위한 (CTRL-Y 시프트-CMD-Z 대). REDO 키 스트로크에 os.name이 필요하다고 걱정됩니다. –
@ChristopherBruns 네가 옳은 것 같아. Microsoft Office Mac은 편안함이 있다면 2011 년까지 Cmd + Y를 사용했습니다. –