【发布时间】:2020-05-21 09:44:43
【问题描述】:
我正在编写一个聊天应用程序,目前正在开发聊天窗口。我已经拥有的是 JTextArea 放入 JScrollPane 填充 JPanel。写入和接收消息会导致append()函数在文本区域中添加新行。
我想改变的是摆脱文本区域并在其位置附加JLabel 组件。每次发送或接收新消息时,都会出现新标签,具体取决于消息的来源。标签应放在右侧(我们)或左侧(第二个用户)。
Swing 甚至可以做到这一点吗?我知道需要做的是在上次显示的消息下方添加一些常量值(SEPARATION_CONSTANT) 的新标签。
我希望所有这些都像这张图片一样,每条消息都是一个新标签,这背后的主要原因是用户可以发送图片。
我的推理正确吗?我是否需要一些 int 值来表示将放置下一条消息的高度(y 线),或者在滚动窗格中有什么方法可以做到这一点?
【问题讨论】:
-
只需在 JScrollPane 中添加一个 JPanel。使其使用 BoxLayout.Y_AXIS,您添加到其中的组件将自动放置在另一个之下。
标签: java swing chat jlabel messaging