gpt4 book ai didi

java - 通过 SQL 查询在 JTree 中动态创建节点

转载 作者:行者123 更新时间:2023-12-01 04:50:23 25 4
gpt4 key购买 nike

我有这样的层次结构:

Lot
|_Stages
|_Samples

示例:

Lot1
|_Stage1
|_Sample11
|_Sample12
|_Stage2
|_Sample21
|_Sample22

这个想法是,用户将提供 LotID,并基于此我的 SQL 查询检索所有阶段以及每个阶段中的所有样本。

我将结果集中的每条记录保存为自定义对象并将其添加到数组列表中。

结果集输出示例:

LotID || LotCondition || StageID || StageCondition || SampleID || SampleCondition

--------|| -------------- || ------------ || -------------------- || ------------|| ----------------

5001 || Dispositioned || 4001 || Complete || 3001 || Approved

5001 || Dispositioned || 4001 || Complete || 3002 || Approved

5001 || Dispositioned || 4002 || Complete || 3003 || Approved

5001 || Dispositioned || 4002 || Complete || 3004 || Approved

5002 || ReadyToRelease|| 4003 || Complete || 3005 || Approved

5003 || Dispositioned || 4004 || Complete || 3006 || Approved

5004 || Dispositioned || 4004 || Complete || 3007 || Approved

在此数组列表中,我使用 DefaultMutableTreeNode 将对象添加到树中(即 new DefaultMutableTreeNode(custom_object.getLotID)..etc)。

现在有 2 个问题:

  1. 只有一个唯一的 LotID = 5001,但它显示了 4 次(根据上面的示例),因为有 4 个 sample ,因此有 4 条记录。

  2. 我的目标是首先检索 SampleID 并将其添加到各自的 StageID,最后将所有 StageID 添加到 LotID(根节点)。不知道如何分层显示。

有人能给我指出正确的方向或一些想法吗?

最佳答案

好的..我找到了一种方法来做到这一点,并认为我可以分享它。我没有使用 MutableTreeModel。

我决定创建循环,即当检索结果集时。例如:我获取阶段的结果集,并在其中尝试获取每个阶段中的所有样本。

现在我有两个选择,一个是将这些结果集存储到 DefaultMutableTreeNode 中,或者将它们存储在 ArrayList 和 HaspMap 中(例如:我可以为 Stage ID 创建一个 HashMap 作为我的键及其在 ArrayList 中的样本作为它的值。然后因为我们可以将除 DefaultMutableTreeNode 对象之外的任何类型的对象传递给 TreeModel,所以我们可以传递此 HashMap 对象并使用自定义 TreeModel 来处理它。这还需要我的对象保存在 Arraylists 覆盖中HashCode 和 Equals 方法。

但我认为,对于我的应用程序,选择选项 1 很简单。

关于java - 通过 SQL 查询在 JTree 中动态创建节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15101671/

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