【发布时间】:2013-03-02 04:15:25
【问题描述】:
我有这样的层次结构:
Lot
|_Stages
|_Samples
例子:
Lot1
|_Stage1
|_Sample11
|_Sample12
|_Stage2
|_Sample21
|_Sample22
这个想法是用户将提供一个 LotID,并基于此我的 SQL 查询检索所有阶段以及每个阶段内的所有样本。
我将结果集中的每条记录保存为自定义对象并将其添加到数组列表中。
结果集输出示例:
批次ID ||批次条件 ||阶段ID ||阶段条件 ||样品编号 ||样本条件
--------|| -------------- || ------------ || -------------------- || ------------|| ----------------
5001 ||处置|| 4001 ||完成 || 3001 ||已批准
5001 ||处置|| 4001 ||完成 || 3002 ||已批准
5001 ||处置|| 4002 ||完成 || 3003 ||已批准
5001 ||处置|| 4002 ||完成 || 3004 ||已批准
5002 ||准备发布|| 4003 ||完成 || 3005 ||已批准
5003 ||处置|| 4004 ||完成 || 3006 ||已批准
5004 ||处置|| 4004 ||完成 || 3007 ||已批准
从这个数组列表中,我使用 DefaultMutableTreeNode 将对象添加到树中(即 new DefaultMutableTreeNode(custom_object.getLotID)..etc)。
现在有两个问题:
-
只有一个唯一的 LotID = 5001,但它显示了 4 次(根据上面的示例),因为有 4 个样本,因此有 4 条记录。
-
我的目标是首先检索 SampleID 并将其添加到各自的 StageID,最后将所有 StageID 添加到 LotID(根节点)。不知道怎么分层显示。
谁能指出我正确的方向或一些想法?
【问题讨论】:
-
使用某种工厂,给定行数据,可以生成所需的节点。您可能希望传递对正在使用的树模型的引用。我建议使用
MutableTreeModel和MutableTreeNode。查看How to use Trees 了解更多想法