簡體   English   中英

通過SQL查詢在JTree中動態創建節點

[英]Dynamically create nodes in JTree from a SQL query

我有這樣的層次結構:

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)。

現在有兩個問題:

  1. 只有一個唯一的LotID = 5001,但它顯示4次(如上例所示),因為有4個樣本,因此有4條記錄。

  2. 我的目標是首先檢索SampleID並將其添加到它們各自的StageID中,最后將所有StageID添加到LotID(根節點)中。 我不知道如何分層顯示。

誰能為我指出正確的方向或一些想法?

好吧..我找到了一種方法來做,並認為我可以分享。 我沒有使用MutableTreeModel。

我決定創建循環,即檢索結果集時。 例如:我獲取階段的結果集,並且在內部嘗試獲取每個階段中的所有樣本。

現在我有2個選項,一個是將這些結果集存儲到DefaultMutableTreeNode中,或者將它們存儲在ArrayList和HaspMap中(例如:我可以為舞台ID創建一個HashMap作為鍵,並在ArrayList中創建其Samples作為值。然后,因為我們可以將DefaultMutableTreeNode對象以外的任何類型的對象傳遞給TreeModel,所以我們可以傳遞此HashMap對象並使用自定義TreeModel來處理它。等於方法。

但是我認為,對於我的應用程序,選擇選項1很簡單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM