【问题标题】:JEditorPane - In what order are edit events called?JEdi​​torPane - 以什么顺序调用编辑事件?
【发布时间】:2013-06-29 05:27:25
【问题描述】:

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

此外,为了提高效率,我假设调用以下任一方法:

  • UndoableEdit.undo()
  • UndoableEdit.redo()

...不会触发新的 UndoableEdit 事件,但仍会触发新的 DocumentEvent。谁能确认这是否确实如此?

【问题讨论】:

  • 阅读 Implementing Undo and Redo 上的 Swing 教程部分。然后您可以下载 TextComponentDemo 示例,添加一些 println() 语句来看看会发生什么。

标签: java swing event-handling document jeditorpane


【解决方案1】:

在尝试了camickr的建议后,似乎这是事件的顺序:

  1. 在编辑器窗格中输入内容(包括剪切、复制和粘贴)或更改文档字体/样式时,文档将在触发 UndoableEditEvent 之前触发 DocumentEvent。

  2. 调用 UndoableEdit.undo() 或 UndoableEdit.redo() 时,只会触发对应的 DocumentEvent。

【讨论】:

  • 注意:如果没有记录,序列是一个实现细节,可能会在没有通知的情况下更改,不应依赖。好奇:你为什么需要它?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-14
  • 2011-06-06
  • 2014-06-30
  • 2010-12-22
  • 2012-07-29
  • 2011-04-11
  • 1970-01-01
相关资源
最近更新 更多