Quirk使用我的文本编辑器应用程序和DocumentListener

时间:2015-03-17 22:04:34

标签: java swing jtextpane jtabbedpane documentlistener

我有一个JTabbedPane。我根据具有JTextPane信息的类(此处称为textWrap)的实例化添加选项卡。我创建了一个新的侦听器实例,并将其传递给textWrap的实例化:

tabEditorPane.addTab( fileName, new TextEditorWrap( new MyDocumentListener() ... ...);

我的DocumentListener在文件更改时向选项卡添加星号。在我尝试将现有文件加载到文本选项卡之前,这一切似乎都没问题。侦听器注册初始的BufferedReader输入并添加星号。我怎么能绕过这个?

这件事有经验吗?我知道在创建类之后我可以注册监听器,因为在加载文本文件之后,我想看看堆栈说的是什么。

1 个答案:

答案 0 :(得分:1)

加载文件时,应该有一个像

这样的调用
myTextPane.getEditorKit().read(...);

或任何等效的加载方法。 您可以做的是将此行替换为4个步骤:

  1. 删除或停用文档侦听器
  2. 加载您的文件
  3. 删除星号
  4. 放回或重新激活文档侦听器。
  5. 为此,您可以扩展文本窗格并编写将执行这4个步骤的load方法。无论如何,管理文件加载的对象将需要对DocumentListener的引用