我正在尝试编写一个支持某种着色的JTextPane:当用户输入文本时,我正在运行一些代码,根据某种算法为文本着色.这很好用.
问题是着色操作是在撤消管理器(带有EventType.CHANGE的DefaultDocumentEvent)中注册的.因此,当用户单击撤消时,着色消失.仅在第二个撤消请求时,文本本身才会回滚.
(请注意,着色算法有点慢,因此我无法在插入文本时对其进行着色).
如果我尝试阻止CHANGE事件到达撤消管理器,我会在几次撤消请求后得到异常:这是因为文档内容不符合可撤销编辑对象所期望的.
有任何想法吗?