어떻게 참으로 자바 FX에서 텍스트 영역의 isUndoable 속성을 설정합니까?

아마르 :

나는 자바 FX와 간단한 텍스트 편집기를 만들려고 노력하고있어 나는 MenuItem을 누르면 더 핸들러로 () textArea.undo를 호출 할 때, 그것은 작동하지 않습니다! 내가 deafult isUndoable 속성이 false로 설정되어 있는지를 체크 아웃 발견, 그래서 내가 Ctrl + Z를 누르면 실행 취소 기능 만 작동! 그래서 내가 어떻게 그것을 바꿀 수 있나요?

여기 내 코드는 다음과 같습니다

MenuItem undo = new MenuItem("Undo");
undo.setAccelerator(new KeyCodeCombination(KeyCode.Z, KeyCombination.CONTROL_DOWN));
undo.setOnAction(e -> textArea.undo());

또한 다음 코드를 시도 :

textArea.isUndoable() = true;

하지만 내가 할 수 없어 밝혀졌다!

파비안 :

이 속성은 없습니다 가 편집의 내부 역사에 의존하기 때문에, 설정. 직접이 목록을 수정할 수 없습니다. 귀하의 경우 역사는 파멸에 더 이상 상태가 없다 우연히

당신이 할 수있는 모든 역사 모양을 사용하여 당신이 그것을 원하는 방식으로 만들기 위해 노력하고있다 replaceText반복 (그것을 사용하거나 다른 편집 방법을), 그러나 그룹의 변경 및 편집 역사의 모든 권한을 허용하지 않는 경우에도있다.

String wrongText = "Hello Worlt";
textArea.insertText(0, wrongText);
textArea.deleteText(wrongText.length()-1, wrongText.length());
textArea.insertText(wrongText.length()-1, "d");
// now there should be 2 changes to undo

추천

출처http://10.200.1.11:23101/article/api/json?id=478818&siteId=1