Wie kann ich isUndoable Eigenschaft TextArea- in javafx auf true gesetzt?

Ammar:

Ich versuche, einen einfachen Text-Editor mit JavaFx zu machen und wenn ich textArea.undo () als auch Handler aufrufen, wenn ein MenuItem gedrückt wird, es funktioniert nicht !. Rückgängig-Funktion funktioniert nur, wenn ich Strg + Z drücken, damit ich es ausgecheckt und bemerkte, dass die deafult isUndoable Eigenschaft auf false gesetzt ist! so wie kann ich das ändern?

hier ist mein Code:

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

Ich habe auch versucht, den folgenden Code:

textArea.isUndoable() = true;

aber es stellte sich heraus, dass ich das nicht tun kann!

fabian:

Diese Eigenschaft kann nicht festgelegt werden, da sie auf einer internen Geschichte der Änderungen abhängig ist . Sie können diese Liste nicht direkt ändern. In Ihrem Fall ist nun mal die Geschichte nur für Verhängnis nicht mehr Staaten haben

Alles , was Sie tun können , ist zu versuchen , die Geschichte so aussehen, wie Sie es verwenden wollen, stellen Sie replaceText(oder andere Bearbeitungsmethoden mit ihm) wiederholt, sondern auch , dass Veränderungen Gruppen und erlaubt keine vollständige Kontrolle über die Versionsgeschichte.

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

Ich denke du magst

Origin http://10.200.1.11:23101/article/api/json?id=478816&siteId=1
Empfohlen
Rangfolge