[英]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)。
現在有兩個問題:
只有一個唯一的LotID = 5001,但它顯示4次(如上例所示),因為有4個樣本,因此有4條記錄。
我的目標是首先檢索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.