假设您有一个JEditorPane,同时已向其注册UndoableEditListener和DocumentListener。通过在编辑器窗格中键入来更改基础文档的内容时,触发事件的顺序是什么?

另外,为了效率起见,我假设调用以下两种方法之一:


UndoableEdit.undo()
UndoableEdit.redo()


...将不会触发新的UndoableEdit事件,但仍会触发新的DocumentEvent。任何人都可以确认是否确实如此吗?

最佳答案

尝试了camickr的建议之后,看来这是事件的顺序:


在编辑器窗格中键入内容(包括剪切,复制和粘贴)或更改文档字体/样式时,文档将在触发UndoableEditEvent之前触发DocumentEvent。
当调用UndoableEdit.undo()或UndoableEdit.redo()时,将仅触发相应的DocumentEvent。

09-08 03:33