我有一个Java表单,我想添加一个聊天容器,其中包含您与联系人进行的所有对话。到目前为止,我想创建一个面板,每次用户收到一条消息时,它都会作为JLabel附加到面板上,它也应该具有发送者的名称,它将是另一个粗体,更大字体的JLabel,另一种颜色等。
有没有更好的方法来接近这个?基本上我想有一个容器,可以动态地以格式化的方式追加字符串,而不会重复出现给JLabel。
感谢。
答案 0 :(得分:0)
看看JTextPane 我认为它能满足您的需求 例如,它可以呈现html格式的字符串 这是一个伪代码
import javax.swing.JTextPane;
public class MessagesTextPane extends JTextPane
{
MessagesTextPane()
{
super();
//setFont(new Font(Font.MONOSPACED,Font.BOLD,20));
setContentType("text/html");
div="<table>"
+"<tr style=\"color:#"+ clrn +"; font-family:Verdana; font-size:12pt\">"
+"<td valign=\"top\" ><img align=\"top\" src=\""
+this.getClass().getClassLoader().getResource("user.png").toString()
+"\" /></td>"
+"<td> <b>"+ msg.senderName + "</b><br/>"
+ msg.msg
+"</td>"
+"</tr>"
+"</table> ";
setText(div);
validate();
}
}