Como faço para definir propriedade isUndoable de TextArea em javafx a verdade?

Ammar:

Eu estou tentando fazer um editor de texto simples com o JavaFX e quando eu chamo textArea.undo () como um manipulador, mesmo quando um MenuItem é pressionado, ele não funciona !. undo funcionalidade só funciona quando eu pressionar Ctrl + Z para que eu verifiquei e notei que o deafult propriedade isUndoable é definido como falso! assim como eu posso mudar isso?

aqui está o meu código:

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

Eu também tentei o seguinte código:

textArea.isUndoable() = true;

mas descobriu-se que eu não posso fazer isso!

Fabian:

Esta propriedade não pode ser definida, uma vez que depende de uma história interna de edições. Você não pode modificar esta lista diretamente. No seu caso, a história só acontece de não ter mais estados para desfazer

Tudo o que você pode fazer é tentar fazer o olhar história do jeito que você quer a usar replaceText(ou outros métodos de edição de usá-lo) várias vezes, mas mesmo que agrupa as alterações e não permite o controle total do histórico de edições.

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

Acho que você gosta

Origin http://10.200.1.11:23101/article/api/json?id=478819&siteId=1
Recomendado
Clasificación