我有这样的层次结构:

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很简单。

09-26 15:36