2012-02-22 57 views
1

我在想如何更改一个句子中的特定文本颜色?更改java中的特定文本颜色

可以说HELLO WORLD ......我想改变世界变成红色,而不会改变对如何改变世界的大胆

的HELLO..same确切的事情字体颜色我想这些设置字符串中的一个JTextArea但所有我能找到的是这样的

JTextArea textbox = new JTextArea("hello world"); 
textbox.setForeground(Color.red) 

这些使得整个句子变成红色,而不是只让世界变成红色?

回答

5

查看有关文本组件的Oracle文档this。一个JTextArea将接受样式,但它总是将样式应用于其整个内容。但是,如果您要使用JTextPane,则可以使用HTML在文本中创建任何想要的样式。

代码备份断言:

import javax.swing.JFrame; 
import javax.swing.JTextPane; 
import javax.swing.text.html.HTMLEditorKit; 

public class StyleTestApp { 
    public static void main(final String[] args) { 
     final JFrame f = new JFrame("test"); 
     //f.getContentPane().add(new JTextArea("<html>HELLO <font size=\"3\" face=\"verdana\" color=\"red\">WORLD</font></html>")); 
     final JTextPane p = new JTextPane(); 
     // the HTMLEditorKit is not enabled by default in the JTextPane class. 
     p.setEditorKit(new HTMLEditorKit()); 
     p.setText("<html>HELLO <font size=\"3\" face=\"verdana\" color=\"red\">WORLD</font></html>"); 
     f.getContentPane().add(p); 
     f.pack(); 
     f.setVisible(true); 
    } 
}