如何在JTextArea中设置部分文本颜色?

我想为文本区域中的特定行设置颜色。到目前为止,我发现的是以下内容

// Declarations

private final DefaultStyledDocument document;

private final MutableAttributeSet homeAttributeSet;

private final MutableAttributeSet awayAttributeSet;

// Usage in the form constructor

jTextAreaLog.setDocument(document);

homeAttributeSet = new SimpleAttributeSet();

StyleConstants.setForeground(homeAttributeSet, Color.blue);

StyleConstants.setItalic(homeAttributeSet, true);

awayAttributeSet = new SimpleAttributeSet();

StyleConstants.setForeground(awayAttributeSet, Color.red);

// Setting the style of the last line

final int start = jTextAreaLog.getLineStartOffset(jTextAreaLog.getLineCount() - 2);

final int length = jTextAreaLog.getLineEndOffset(jTextAreaLog.getLineCount() - 1) - start;

document.setCharacterAttributes(start, length, awayAttributeSet, true);

但这是行不通的。我究竟做错了什么?

编辑:好的,我一直在尝试,我尝试使用

final int end = jTextAreaLog.getLineEndOffset(jTextAreaLog.getLineCount() - 1);

document.insertString(end, "someText", awayAttributeSet);

添加文本,而不是添加文本,然后重新样式,但无济于事。

回答:

我不确定JTextArea是否可以设置太多详细的样式,因为它可能是根据所选字体,颜色等为整个文档设置样式的。使用JTextPane /

JEditorPane可能会有更多的运气。

编辑:从javadoc

JTextArea是显示 文本的多行区域。

(重点已添加。)

如果可以移动到JTextPane,则将呈现格式。

以上是 如何在JTextArea中设置部分文本颜色? 的全部内容, 来源链接: utcz.com/qa/402853.html

回到顶部