gpt4 book ai didi

java - 我的文本编辑器应用程序和 DocumentListener 的怪癖

转载 作者:行者123 更新时间:2023-12-01 11:46:10 24 4
gpt4 key购买 nike

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

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

当文件更改时,我的 DocumentListener 会向选项卡添加一个星号。这一切看起来都不错,直到我尝试将现有文件加载到文本选项卡中。监听器注册初始 BufferedReader 输入并添加一个星号。我该如何解决这个问题?

这件事有经验法则吗?我意识到我可以在创建类之后注册监听器,就像在加载文本文件之后一样,但我想看看堆栈说什么。

最佳答案

加载文件时,应该有一个类似的调用

myTextPane.getEditorKit().read(...);

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

  1. 删除或停用您的文档监听器
  2. 加载您的文件
  3. 删除星号
  4. 放回或重新激活文档监听器。

为此,您可以扩展文本 Pane 并编写一个 load 方法来执行这 4 个步骤。无论如何,管理文件加载的对象需要引用您的 DocumentListener

关于java - 我的文本编辑器应用程序和 DocumentListener 的怪癖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29110603/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com