当前位置: 首页 > 知识库问答 >
问题:

JTextPane中的彩色文本在附加新字符串时会变得杂乱

祝花蜂
2023-03-14
private void appendToPane(String msg, JTextPane p, Color c) {
    Style style = p.addStyle("I am a style", null);
    StyleConstants.setForeground(style, c);
    StyledDocument doc = p.getStyledDocument();
    try {
        doc.insertString(doc.getLength(), msg, style);
    } catch (Exception e) {
        System.err.println(e);
    }
}

它是工作的,唯一的问题是文本得到混乱时滚动或追加新的文本。我的意思是:
-一行的上半部分或下半部分消失(留下一半不可读的字母)
-文本部分改变颜色(某些部分红色变为暗红色)
-两行相互改变颜色。(绿色部分得到红色行,红色部分得到绿色行)
-字母看起来脏兮兮的(字母没有清晰的线条)

所有这些问题在调整窗口大小时消失,但在滚动或追加新文本时再次出现。

共有1个答案

路裕
2023-03-14

例如,一些新追加的行采用旧追加行的颜色,反之亦然

是,插入的文本将继承上一个文本的属性,除非您为插入的文本指定了属性。

在文本窗格末尾追加文本的基本代码如下所示:

//  Define a keyword attribute

SimpleAttributeSet keyWord = new SimpleAttributeSet();
StyleConstants.setForeground(keyWord, Color.RED);
StyleConstants.setBackground(keyWord, Color.YELLOW);
StyleConstants.setBold(keyWord, true);

//  Adding a new line of text

try
{
    StyledDocument doc = textPane.getStyledDocument();
    doc.insertString(doc.getLength(), "\nEnd of text", keyWord );
}
 类似资料:
  • 问题内容: 我可以解析JTextPane的内容,而不会遇到HTML中的任何问题: 这导致 你好! 但是每当我尝试将字符串附加到textPane时,使用 (如该问题所示),我的输出是 你好! (不带空格)-跳过html格式。 如何在我的JTextPane对象上附加一个字符串,并保持添加部分的HTML格式? 问题答案: 使用例如 要么 如果要插入段落/表格或其他分支元素,则使用该方法

  • 问题内容: 在每篇文章中,“如何向JEditorPane附加字符串?”问题的答案。就像 我已经试过了: 结果,我得到了“终止时间:1000”,而没有“进程的分布:” 为什么会发生这种情况??? 问题答案: 我怀疑这是附加文本的推荐方法。这意味着每次更改某些文本时,都需要重新解析整个文档。人们之所以这样做,是因为他们不了解如何使用JEditorPane。包括我在内。 我更喜欢使用JTextPane然

  • 问题内容: 我是iOS新手。我目前正在使用Objective-C和Swift学习iOS。 要在Objective-C中附加字符串,我使用以下代码: 有人请指导我。 问题答案: 非常简单: 对于ObjC: ForSwift: 对于ObjC AppendString: 对于Swift AppendString: 结果: 在Swift中完成代码:

  • 场景:文本文件快照ID。txt位于S3存储桶中。我正在尝试创建一个每天运行的Lambda函数(Cron),该函数将使用AWS CLI拍摄卷的快照,然后将该快照ID保存到S3中的文本文件中。下次创建另一个快照时,新的快照ID将保存到S3中的同一个文本文件中。文本文件是快照ID的占位符,当它达到阈值时,它将删除顶部快照ID,并在末尾添加新快照ID(FIFO管道)。 对于不使用AWS lambda的人,

  • 我正在创建一个聊天应用程序。在这个聊天应用程序中,我必须使用Java Swing的来给一些特定的字符串赋予样式,比如用户的显示名称和消息的时间。这就是我选择而不是的原因。在JTextPane中,我不能追加字符串,所以我创建一个字符串缓冲区来追加字符串,然后执行。 我的问题是:当我通过将字符串追加到中时,会出现延迟。如何在中逐行追加字符串?

  • 我认为每次更改字符串后,Python字符串的id都必须更改。但我发现真正的行为是不同的。例如,并非输出下面的所有代码字符串都不同: 这就是为什么我认为Python内核正在尝试优化代码,并开始对内存中的字符串进行奇怪的操作。该假设的另一个论点是,常量ID与大小为2的幂的段相关联: 但这其中还有一件奇怪的事。让我们看看随着字符串大小的增加,段大小会发生什么变化: 最后,我们可以尝试近似地将char添加