我在Java / Swing中创建一个聊天程序,文本在Jtextpane对象中呈现。现在,一条新消息将删除旧消息,因为我无法弄清楚如何添加到现有文档中。怎么做?
public void addMessage(String sender, String msg) throws BadLocationException, IOException{
HTMLEditorKit kit = new HTMLEditorKit();
HTMLDocument doc = new HTMLDocument();
pane.setEditorKit(kit);
pane.setDocument(doc);
kit.insertHTML(doc, doc.getLength(), "<b>[" + sender + "]</b> " + msg, 0, 0, null);
}
答案 0 :(得分:1)
不要使用HTML。
只需使用常规文本,然后就可以将文本与样式属性相关联。
例如:
// create a set of attributes
Simple AttributeSet keyWord = new SimpleAttributeSet();
StyleConstants.setForeground(keyWord, Color.RED);
StyleConstants.setBackground(keyWord, Color.YELLOW);
StyleConstants.setBold(keyWord, true);
// Add some text
try
{
StyledDocument doc = textPane.getStyledDocument();
doc.insertString(doc.getLength(), "\nEnd of text", keyWord );
}
catch(Exception e) {}