gpt4 book ai didi

Java jTextPane 一行常规和粗体文本错位

转载 作者:太空宇宙 更新时间:2023-11-04 12:59:18 27 4
gpt4 key购买 nike

我有一个使用 StyledDocument 的 TextPane。如果键入消息,它首先将当前时间和其他用户 IP 添加到文档中之后,用户输入的自定义消息将添加到粗体后面。

显然问题是粗体占用了更多空间并使其错位,导致: enter image description here<- 目前,用于此过程的代码如下:

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。

最佳答案

尽管我说过我不想使用 HTMLEditorKit,但我现在使用它,因为它是我能找到的唯一修复方法。

这是我目前的工作方法:

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() ? " >>" : " &lt;&lt;"), msg);
addText(formattedMessage, true);
}

并且不要忘记在 TextPane 上设置 EditorKit!

chat.setEditorKit(new HTMLEditorKit());

关于Java jTextPane 一行常规和粗体文本错位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35057372/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com