聊天室的 JTextPane 或 JEditorPane

Posted

技术标签:

【中文标题】聊天室的 JTextPane 或 JEditorPane【英文标题】:JTextPane or JEditorPane for a Chatroom 【发布时间】:2011-12-05 16:30:34 【问题描述】:

我必须做一个像这样的聊天室:

显示的消息还必须显示笑脸,并且所有内容都可以像 Skype 中一样复制/粘贴。

我不知道在 JEditor 和 JTextpane 之间选择什么。我都试过了,我遇到了以下困难:

JEditorPane:

复制/粘贴,可以显示笑脸并复制粘贴。 设置内容为text/html时无法设置消息的leftIndent

JTextPane:

我可以设置leftIndent 当我将文本内容设置为 html 时,无法复制/粘贴笑脸图标。 无法在消息中显示笑脸

也许我错了,我不知道足够多的东西,所以我想听听你的意见:)

非常感谢。

问候

【问题讨论】:

【参考方案1】:

使用 JTextPane。将内容类型设置为 text/html。并通过 setText(); 放置适当的 html;

这是关于本地图像的 http://java-sl.com/tip_local_images.html

还有这个关于微笑的 http://java-sl.com/tip_autoreplace_smiles.html

【讨论】:

嗨,在 2 个例子中,使用了 JEditorPanes,也许你的意思是我应该使用 JEditorPanes 而不是 JTextPane? JTextPane 扩展了 JEditorPane,因此为 JEditorPane 描述的所有内容都可以应用于 JTextPane。【参考方案2】:

(补充 StanislavL 的答案。)至少在 Java 1.7 leftindent 适用于 JTextPane:

<html>
  <head>
    <style type='text/css'>
        p  text-indent: 20px; 
    </style>
  </head>
  <body>
    <p style="margin-top: 0">
    The text.
    </p>
  </body>
</html>

【讨论】:

以上是关于聊天室的 JTextPane 或 JEditorPane的主要内容,如果未能解决你的问题,请参考以下文章

带有 gif 和表情符号以及图像 Java 的聊天室

JavaFX中的样式文本?

来自 jTextPane 的可点击文本

如何完全禁用 JTextPane 的文本突出显示?

JTextPane 文本背景颜色不起作用

JTextField 和 JTextPane 之间的根本区别是啥?