首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何替换JTextPane中的StyledDocument

如何替换JTextPane中的StyledDocument
EN

Stack Overflow用户
提问于 2013-11-21 05:54:53
回答 1查看 572关注 0票数 1

我似乎在替换JTextPane中的文本时遇到了问题。我有几个JTextPanes,我需要它们来更改退出文本。我可以使用初始文本完成此操作,但当我调用更改文档时,我在调用中看到了此更改,但面板不会更新。

代码语言:javascript
复制
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时,文档和udoc都包含正确的信息(我逐步执行了程序,当我调用到案例2时,文档显示了更新后的问题),但这不会更新codeTextPane,toolPane也不会加载新的面板。我尝试调用repaint()和update(),但似乎都不起作用。我是不是遗漏了什么?

EN

回答 1

Stack Overflow用户

发布于 2013-11-21 08:45:32

我试着调用

()和update(),但似乎都不起作用。我是不是遗漏了什么?

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

代码语言:javascript
复制
panel.add(...);
panel.revalidate();
panel.repaint();

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20107851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档