gpt4 book ai didi

java - 如何替换 JTextPane 中的 StyledDocument

转载 作者:太空宇宙 更新时间:2023-11-04 07:14:53 24 4
gpt4 key购买 nike

我似乎在替换 JTextPane 中的文本时遇到了障碍。我有几个 JTextPanes 需要更改现有文本。我可以使用初始文本执行此操作,但是当我调用更改文档时,我在调用中看到此更改,但面板不会更新。

switch(module.getCurrentQuestionNumber())
{
case 1:
doc = module8.loadQuestion1();
udoc = module8.loadQuestion1();

codeTextPane.setDocument(doc);
uCodeTextPane.setDocument(udoc);

toolPane.add(module.loadQuestion1Panel(outputTextPane));
uToolPane.add(module.loadQuestion1Panel(uOutputTextPane));
break;

case 2:
doc = module8.loadQuestion2();
udoc = module8.loadQuestion2();

codeTextPane.setDocument(doc);
uCodeTextPane.setDocument(udoc);

toolPane.add(module.loadQuestion2Panel(outputTextPane));
uToolPane.add(module.loadQuestion2Panel(uOutputTextPane));
break;
}

module.getCurrentQuestionNumber()返回1时,面板加载并且一切按预期工作。当 module.getCurrentQuestionNumber() 返回 2 时,doc 和 udoc 中都有正确的信息(我单步执行了程序,当我进入案例 2 的调用时,文档显示更新的问题),但这不会更新 codeTextPane,toolPane 也不会加载新面板。我尝试调用 repaint() 和 update() ,但似乎都不起作用。我错过了什么吗?

最佳答案

I tried to call repaint() and update() and neither seems to work. Am I missing something?

从可见 GUI 添加(或删除)组件时,一般形式为:

panel.add(...);
panel.revalidate();
panel.repaint();

默认情况下,组件的大小为零,因此您需要 revalidate() 来调用布局管理器,以便为组件分配一个大小。

关于java - 如何替换 JTextPane 中的 StyledDocument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20107851/

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