gpt4 book ai didi

用于显示动态表的Java模式?

转载 作者:行者123 更新时间:2023-12-02 08:00:46 25 4
gpt4 key购买 nike

我正在使用 SWT 设计一个 Java 应用程序。我有一些表将显示数据库中的数据,只是一些带有列的关系行。在某些地方我想显示名字和姓氏,然后在其他地方我想显示全名、年龄和薪水。我什至可能想显示诸如卡通人物名称、他们所在的卡通人物、他们是“好”角色还是“坏”角色、角色知名度的排名等内容。

这些只是为了说明我的观点的例子。我想显示关系数据,就像任何数据库中存在的那样。 SWT 有一个表格小部件,非常适合显示此类数据(正如我所期望的大多数 GUI 库所做的那样),但我当前设计的问题是,我专门将所需的列附加到表格中,因为我需要它们。因此,在某个地方我附加了 A、B、C 列,然后在这里我附加了 X、Y、Z 列。如果我在收到数据之前并不确切知道我的列会是什么样子怎么办?

我是否可以考虑使用任何模式将列信息移至数据本身?我猜这是一个很常见的需求。

我考虑过设计一个 Row 对象的容器(带有一个接口(interface)),其方法返回一个字符串列表,这些字符串可以是列的标题。 Row 对象可以实现一个返回给定列的值的方法,但每列可能有不同的类型,那么我到底会返回什么?另外,容器定义列名似乎很奇怪,那么容器中的 Row 对象必须定义所需行为的另一半;感觉所有必需的方法都分布在多个接口(interface)中。

因此,我可以看到的任何设计模式或现有小部件都将非常感激。谢谢。

最佳答案

当您问:“我是否可以考虑将列信息移动到数据本身中时,我不确定您的意思是什么?我猜这是一个非常常见的需求。”

听起来您想构建一个表来显示从数据库检索的一些数据,而不需要“预定义”诸如列数/行数、每列中的数据类型等内容。您看过吗有关构建 TableModel 的示例和教程?

http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#data

从数据库中获取数据后,您只需创建 DefaultTableModel 的实例即可。 。如果您查看 DefaultTableModel 的构造函数,您会注意到它可以接受 Object 类型的二维数组(或 vector 的 vector ,或者......您明白了),这意味着您不需要关心数据的“类型”。 JTable 将根据模型中的内容确定如何最好地显示数据。如果我完全误解了您的问题,请提前道歉。

关于用于显示动态表的Java模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8949921/

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