我有一个使用StyledDocument的TextPane。 如果键入消息,则首先将当前时间和其他用户IP添加到文档中 之后,用户输入的自定义消息将以粗体添加在其后面。
显然问题是大胆占用更多空间并使其放错位置导致: < - 目前所以用于此过程的代码如下:
public void addText(String msg) {
long timeMS = System.currentTimeMillis();
Date instant = new Date(timeMS);
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
String time = sdf.format(instant);
SimpleAttributeSet bold = new SimpleAttributeSet();
StyleConstants.setBold(bold, true);
try {
StyledDocument doc = getChat().getStyledDocument();
doc.insertString(doc.getLength(), time + ": " + Client.getClient().getPartnerIP() + " >>", null);
doc.insertString(doc.getLength(), msg + "", bold);
JScrollBar sb = getChatScroller().getVerticalScrollBar();
sb.setValue(sb.getMaximum());
} catch (BadLocationException e) {
e.printStackTrace();
}
}
我知道这可以使用htmlEditorKit轻松修复,但我不想使用htmlEditorKit。
答案 0 :(得分:0)
Eventho我说我现在不想使用HTMLEditorKit,因为它是我能找到的唯一修复。
这是我目前的工作方法:
python-social-auth
并且不要忘记在TextPane上设置EditorKit!
public void addMsg(String msg, String from) {
String formattedMessage = String.format("%s%s<font color=#FF0000 size=5><b>%s</b></font>\n", from, (from == getUserName() ? " >>" : " <<"), msg);
addText(formattedMessage, true);
}