gpt4 book ai didi

java - 应该使用什么组件来显示聊天应用程序中的消息?

转载 作者:行者123 更新时间:2023-11-29 03:30:09 24 4
gpt4 key购买 nike

请看下图:

enter image description here

用什么组件让“聊天消息”显示成图片上的样子?它只是一个带有 html 的简单 JTextPane 吗?这里最好的方法是创建类似的东西?我希望有一种方法可以轻松定位消息并在消息打印后将其删除/编辑。

最佳答案

我会为此使用 JList。您的呈现器可以允许显示多行,如您的 GUI 所示,并且 JList 比具有大量 JLabel 的 JPanel 提高了效率,因为它不显示实际组件,而是显示组件的呈现。 JTextPane 也可以工作,但我认为没有必要,因为显示中的文本不应直接可编辑。相反,底部的 JTextField 或 JTextArea 是应该进行编辑和输入的地方。另一种选择是使用具有单列的 JTable——与上面的想法相同,但允许根据需要编辑单元格。


编辑
你声明:

But how would i create the Name - Date (newline) message part in a JList? Would that be 1 list item?

不,单元格渲染器将使用允许多行显示的组件,可能是一个 JTextPane 或一个包含两个 JLabel 的 JPanel。


编辑2

Ok so each item in the JList would be a JPanel?

不,一点也不。 单元格渲染器 可以是一个 JPanel,但 JList 的每个项目都是为此目的创建的类的一个对象,该类具有字段用于 Chatter、日期和字符串(文本)。


编辑 3
了解 JList 的模型不包含 GUI 组件,而是 JList 显示的逻辑信息。

例如,您可以创建一个类,

public class ChatEntry {
private Chatter chatter; // holds the chatter's name, and any other relevant info
Date date; // time of chat entry
String text; // the text entered

//..... getters setters and constructor
}

那么您的 JList 将是 JList<ChatEntry>但更重要的是,列表的模型将包含 ChatEntry 项。

然后您将创建一个单元格渲染器,将 ChatEntry 信息转换为可显示/可渲染的组件。

关于java - 应该使用什么组件来显示聊天应用程序中的消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18687607/

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