Java:如何更改文本区域中特定行或字符串行的颜色?
Posted
技术标签:
【中文标题】Java:如何更改文本区域中特定行或字符串行的颜色?【英文标题】:Java: How to I change the color of a specific line or row of string in a Text area? 【发布时间】:2011-06-06 22:36:48 【问题描述】:我可以更改颜色的一种方法是通过 setForground()。但是,当有多行代码时,它会使所有内容变为绿色或黑色。是否有另一种方法或任何方法来解决这个问题?谢谢!
int key = evt.getKeyCode();
if (key == KeyEvent.VK_ENTER)
String tb1EnterdValue = tb1.getText().toString();
if((tb1EnterdValue.equals("yes")) )
TextArea1.setForeground(Color.green);
else
TextArea1.setForeground(Color.lightGray);
this.TextArea1.append(">"+tb1EnterdValue+newline);
this.tb1.setText("");
【问题讨论】:
【参考方案1】:我会使用带有“属性”(不是 html)的 JTextPane 来更改文本颜色。 Text Component Features 上的 Swing 教程部分提供了一个可帮助您入门的工作示例。
我之前尝试过 JTextPanes,但他们不让我使用 append() 方法
append() 方法只是一种方便的方法,它允许您将文本添加到 Document 的末尾。您也可以为 JTextPane 实现自己的 append() 方法。只需查看 JTextArea 的源代码并从其 append() 方法中复制代码即可。
【讨论】:
谢谢,但是我究竟如何从 JTextArea 获取源代码? 源码自带JDK。它在一个名为 src.zip 的文件中。 你想在哪里使用它。【参考方案2】:这是 Swing 吗?您使用的是 JTextAreas 吗?如果是这样,请具体说明您的问题,然后不要使用 JTextArea,因为如果您想在一个文本组件中使用多种格式,它不是理想的文本组件。而是考虑使用 JTextPane 或 JEditorPane。这些教程将向您展示如何使用它们以及何时使用它们。
【讨论】:
是的,它是一个秋千和 JTextArea。我之前尝试过 JTextPanes,但他们不允许我使用 append() 方法,我需要将每个“命令”放到一个新行上。 缺少追加不应妨碍您使用其他文本组件,因为您可以将文本添加到组件的文档中。 我该怎么做?因为我需要光标在每次输入文本后换行 - 无论如何。有没有类似append的方法?以上是关于Java:如何更改文本区域中特定行或字符串行的颜色?的主要内容,如果未能解决你的问题,请参考以下文章