在java字符串变量上使用HTML

时间:2015-10-11 17:22:57

标签: java html string

我现在正在制作一个简单的聊天程序,我想出了一个我无法在网络上找到的问题,也许是因为我没有用正确的词语来描述它

所以,我想简单地为使用html附加到JTextArea的文本的一部分着色,但问题是我想要着色的文本的一部分存储在一个String变量中,而且我没有&# 39;知道如何在其上应用html。

这就是我在代码中尝试做的事情:

String text = new String("Hello");
String htmlText = new String("<html><font color='red'>" + text + "</font></html>");

但输出为<html><font color='red'>Hello</font></html>

谢谢,抱歉我的英语不好。

修改

我已经解决了这个问题。 这是因为我的textPane.setText()方法是 ("<html>"+textPane.getText+"<font color='red'>text</font></html>)

我不应该使用textPane.getText(),我应该使用textPane.getDocument().getText(0, text.getDocument().getLength())

我现在的代码是:

//chatArea is a JTextPane
//mesArea is just a source where I get some text
if (!mesArea.getText().trim().equals("")) {
    mesArea.setText(mesArea.getText().trim());
    try {
        if (chatArea.getDocument().getText(0, chatArea.getDocument().getLength()).equals("")) {
            chatArea.setText("<html><font color='green'>"+user.getNickname()+": </font>"+mesArea.getText()+"</html>");

        } else {
            System.out.println("what");
            String paneText = new String(chatArea.getDocument().getText(0, chatArea.getDocument().getLength()));
            chatArea.setText("<html>"+paneText+"\n<font color='green'>"+user.getNickname()+": </font>"+mesArea.getText()+"</html>");
        }
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    mesArea.setText("");
} else {
    mesArea.setText("");
}

1 个答案:

答案 0 :(得分:2)

您可以使用JTextPane / JEditorPane代替JTextArea 像

String text = new String("Hello");
String htmlText = new String("<html><font color='red'>" + text + "</font></html>");
JTextPane jTextPane =new JTextPane ();
jTextPane.setContentType("text/html");
jTextPane.setText(htmlText);