我有这样的层次结构:
Lot
|_Stages
|_Samples
例:
Lot1
|_Stage1
|_Sample11
|_Sample12
|_Stage2
|_Sample21
|_Sample22
想法是,用户将提供一个LotID,并基于此,我的SQL查询将检索所有阶段以及每个阶段中的所有样本。
我将每个记录保存在结果集中作为自定义对象,并将其添加到数组列表中。
结果集输出示例:
LotID || LotCondition || StageID || StageCondition || SampleID ||样本条件
-------- || -------------- || ------------ || -------------------- || ------------ || ----------------
5001 ||处置|| 4001 ||完成|| 3001 ||已批准
5001 ||处置|| 4001 ||完成|| 3002 ||已批准
5001 ||处置|| 4002 ||完成|| 3003 ||已批准
5001 ||处置|| 4002 ||完成|| 3004 ||已批准
5002 || ReadyToRelease || 4003 ||完成|| 3005 ||已批准
5003 ||处置|| 4004 ||完成|| 3006 ||已批准
5004 ||处置|| 4004 ||完成|| 3007 ||已批准
从这个数组列表中,我使用DefaultMutableTreeNode将对象添加到树中(即新的DefaultMutableTreeNode(custom_object.getLotID).. etc)。
现在有两个问题:
只有一个唯一的LotID = 5001,但它显示4次(如上例所示),因为有4个样本,因此有4条记录。
我的目标是首先检索SampleID并将其添加到它们各自的StageID中,最后将所有StageID添加到LotID(根节点)中。我不知道如何以分层方式显示。
谁能为我指出正确的方向或一些想法?
最佳答案
好吧..我找到了一种方法来做,并认为我可以分享。我没有使用MutableTreeModel。
我决定创建循环,即检索结果集时。例如:我获取阶段的结果集,并且在内部尝试获取每个阶段中的所有样本。
现在,我有2个选项,一个是将这些结果集存储到DefaultMutableTreeNode中,或者将它们存储在ArrayList和HaspMap中(例如:我本可以为Stage ID创建一个HashMap作为键,并在ArrayList中创建其Samples作为值。然后,因为我们可以将DefaultMutableTreeNode对象以外的任何类型的对象传递给TreeModel,所以我们可以传递此HashMap对象并使用自定义TreeModel来处理它。等于方法。
但是我认为,对于我的应用程序,选择选项1很简单。