gpt4 book ai didi

Java JEditorPane 格式

转载 作者:行者123 更新时间:2023-12-04 06:54:22 28 4
gpt4 key购买 nike

我试图在我的应用程序中实现聊天功能。我使用了 2 个 JEditorPane。一个用于保存聊天记录,另一个用于将聊天发送到前一个 JEditorPane。

JEdi​​torPane 是 text/html 类型。

我遇到的问题是,当我在字符之间放置多个空格时,解析器会自动删除它,因为它是 HTML!

我怎样才能做到这一点,空间不会被剥离?

example: hello               world

becomes: hello world

我还必须解析 html 标签,以便可以将新消息添加到历史记录窗口。

有没有比使用 JEditorPane 更好的选择?如果我使用 JTextPane 会更容易实现吗?

我希望聊天框/ Pane 现在能够处理粗体、URL 嵌入。

谢谢并期待您的指导。

编辑:我试图用相关字符替换“”。
newHome[1] = newHome[1].replace(" ", newChar) 

newChar 值应该是多少?

编辑:我正在尝试:
newHome[1] = newHome[1].replaceAll(" ", " ");

但它没有产生结果。有任何想法吗?

编辑:@Thomas - 谢谢!出于某种原因,我可以为您的答案张贴说明。

最佳答案

使用 HTML 标记是一种在 Swing 文本组件中完成简单文本格式设置的快速方法。然而,这不是唯一的方法。

更复杂的方法是使用 javax.swing.text.StyledDocument您可以附加不同的“样式”(因此得名)。样式基本上是一组属性,例如,文本应该是粗体还是斜体,或者它应该具有什么颜色。
JTextPane提供了许多处理样式的便捷方法,它是JEditorPane的子类。这意味着它应该相当无缝地集成到您现有的代码中。例如,要将 JTextPane 中的一部分文本标记为粗体,您可以使用以下内容:

JTextPane textPane = new JTextPane();
Style bold = textPane.addStyle("bold", null);
StyleConstants.setBold(bold, true);

textPane.setText("I'll be bold.");

textPane.getStyledDocument().setCharacterAttributes(8, 4, bold, true);

同样,您可以定义第二个样式,例如使用带下划线的蓝色字体,可用于显示超链接。

不幸的是,缺点是您必须自己处理链接的机制。尽管您可以使用 javax.swing.event.HyperlinkListener 的现有基础架构等人,您将负责检测鼠标点击。悬停和将光标更改为手形符号等也是如此。

关于Java JEditorPane 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2721181/

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