当前位置: 首页 > 面试题库 >

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

林昱
2023-03-14
问题内容

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

// 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中选定的文本设置定义的颜色(像红色)。这就像是在文本区域(jTextArea)中突出显示进程。当我选择特定的文本并点击任何按钮时,它应该以预定义的颜色改变。

  • 问题内容: 是的,语言规范定义结果为“ 2”。如果VM采取不同的方式,则不符合规范。 大多数编译器都会对此抱怨。以Eclipse为例,它将声称永远不会执行return块,但这是错误的。 编写这样的代码我需要知道如何执行此操作: 假设:我有这样的代码: 我想改变的颜色并以颜色为蓝色颜色绿色 M到红色的数字橙色 如何更改此文字的颜色?这些文本来自记事本,也可以直接在文本区域中键入。是非常糟糕的做法,永

  • 问题内容: 我可以将a的文本更改为粗体(附加文本),然后再恢复为普通文本,是否仅将粗体文本显示为粗体,其余部分正常显示? 还可以将其内容另存为RTF文档吗? 问题答案: 不,您要找的是JEdi​​torPane 它支持HTML(3.2?),可让您使用(和其他较早的标记)提供富文本格式。 编辑 :根据我上面引用的javadoc,JEditorPane还支持有限的RTF。不要忘记将MIME更改为

  • 问题内容: 我在Java中有一个JTextArea。当我在其中放置大量文本时,文本区域将提供水平滚动。 我该如何使文本区域换行? 问题答案: 使用方法。Swing 教程中也对此进行了说明。

  • 如何设置文本字段中文本的颜色?例如,将“你好和谐”字段中的“和谐”字体设置为红色。Android代码实现如下: SpannableStringBuilder ssb=新的SpannableStringBuilder();ssb。setSpan(新的ForegroundColorSpan(getCurrentHintTextColor()),i,i 1,0);

  • 我想为我的应用程序创建一个暗模式,我唯一的问题是我无法更改片段中的文本颜色,用户可以打开/关闭暗模式。这就是为什么我无法更改清单中的主题对此问题的任何解决方案? 这是为了检测是否打开了暗模式,背景颜色是否发生了变化,但我不知道如何改变片段中的文本颜色。 这是我的设置页面(片段),我想更改标题和摘要的颜色。