java - 如何将组件插入到 JTextPane,一个从左侧,其他从右侧

标签 java swing jtextpane

我正在开发一个聊天应用程序,我使用 JTextPane 来显示对话,我想将发送者的消息插入到 JTextPane 的左侧,将接收者的消息插入到 JTextPane 的右侧,我将文本包装在另一个 JTextPane 中,其中看起来像一个气球。我只能在左侧插入消息,但不能在右侧插入消息!任何建议都会有帮助和赞赏。您可以从提供的图像中获得想法。 谢谢

注意:这个问题不是重复的,它与组件有关,而不是文本对齐或重力!

enter image description here

最佳答案

不要使用 JTextPane(作为底层组件)添加更多组件。 这可能不会按您的预期工作。

为了实现这一点,我将使用 JPanel 和自定义布局管理器,它可以按照您的需要排列消息(可能是 JLabels)。 自定义布局可以是某种具有 2 列和 n 行的 TableLayout

编辑: 这是框布局示例的链接。 http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html#box
甚至更好 http://docs.oracle.com/javase/tutorial/uiswing/layout/box.html
每行都可以是一个 JLabel,具有不同的对齐方式(例如)

关于java - 如何将组件插入到 JTextPane,一个从左侧,其他从右侧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25610393/

相关文章:

Java JTextPane 或 JTextArea 在换行之前设置每行字符

java - 我可以仅使用 xhtml 文件声明复合组件并且仍然能够在 JAVA 代码中使用该组件吗

java - 如何使用 Java 将字符串日期和字符串时间组合成单个即时日期时间?

java - 类似 STL 的 Java 红黑树/TreeSet/Map 和带有非快速失败/安全迭代器的链表

Java Swing GUI 客户端和服务器聊天应用程序 TextArea 未更新

Java Paint 组件不工作

Java - SaxParser/DocumentBuilder "failing"获取正确的标签主体

java - 循环在网格上绘制一 block

java - 在 JTextPane 中,如何更改输入元素的 value 属性?

java - 使用 LineBreakMeasurer 计算行并更改字体大小