我的情况:我有自己的语法高亮JTextPane中。我有它设置,这样,当用户停止打字,它使用setCharacterAttributes()方法更新的文字样式。
我的问题:如果不执行这些更新的风格,撤消管理工作正常。但是,当我使用它,撤消管理器计数的风格变化实际撤消的行动!这意味着按Ctrl + Z(我有它必然要撤消按下时),它只是联合国颜色的最后一个字符我输入。而不是实际删除/撤消它。
我怎么会得到这么撤消-ING和重做-ING只影响文本的变化,在我不StyledDocument中的风格/字体变化?
谢谢。
这听起来像你需要利用addEdit
或由Significant
解释UndoManager
属性:
该UndoManager的利用isSignificant来确定有多少编辑应该被撤消或重做。该UndoManager要撤消或恢复当前编辑和一个或下一个显著编辑之间的所有无效编辑(isSignificant返回false)。 addEdit和replaceEdit可用于治疗多发性编辑作为一个编辑,从isSignificant返回false可用于治疗可用于有一次撤消许多小的修改或重做。类似的功能也可以使用addEdit方法完成。
来源:https://docs.oracle.com/javase/8/docs/api/javax/swing/undo/UndoableEdit.html