Java 在JTextPane中撤消和重做忽略样式更改

Java 在JTextPane中撤消和重做忽略样式更改,java,jtextpane,undo-redo,Java,Jtextpane,Undo Redo,我想知道在使用Swing的UndoManager时,是否有办法忽略JTextPane中的文本样式更改 我从未尝试过,但我想您可以创建一个自定义管理器 您需要重写undoableEditHappend(…)方法以忽略属性更改: @Override public void undoableEditHappened(UndoableEditEvent e) { // Check for an attribute change AbstractDocument.DefaultDocu

我想知道在使用Swing的UndoManager时,是否有办法忽略JTextPane中的文本样式更改

我从未尝试过,但我想您可以创建一个自定义管理器

您需要重写
undoableEditHappend(…)
方法以忽略属性更改:

@Override
public void undoableEditHappened(UndoableEditEvent e)
{
    //  Check for an attribute change

    AbstractDocument.DefaultDocumentEvent event =
        (AbstractDocument.DefaultDocumentEvent)e.getEdit();

    if  (event.getType().equals(DocumentEvent.EventType.CHANGE))
        return
    else
        super.undoableEditHappened(e);
}

你知道如何获取添加/删除的文本吗?不,我已经尝试了很多次,但始终无法获取这些信息。我正在JTextPane中执行一些简单的语法,缺少内置的撤消/重做非常烦人。幸运的是,我偶然发现了UndoManager,但不幸的是,语法突出显示产生了许多无关紧要的编辑,如果没有这个伟大的答案,UndoManager将毫无用处。谢谢