簡體   English   中英

Java JTree 獲取所選節點的名稱

[英]Java JTree get name of selected node

我想了解如何獲取 JTree 中所選節點的名稱,而不是作為樹節點文本的 userObject。

我手動創建了幾個樹節點,我需要確定通過節點名稱選擇了哪一個。

DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root"); 
DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("Hey it's node1!");
DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("Hey, it's node2!");
root.add(node1); root.add(node2); 

現在,基於此,我需要知道是否選擇了 node1 或 node2。 我想要 node1 或 node2 (變量名稱)的返回值。

為了更清楚地說明這一點:我有一個 JFrame,帶有一個 JPanel、一個 JScrollPane、一個 JTree 和一些文本字段。 根據單擊的節點(節點 1 或節點 2),我想顯示或隱藏某些文本字段。

如果我想讓我的 Node 有一個名字,我會擴展基類,這里是 DefaultMutableTreeNode,並給它一個 String name 字段,然后通過構造函數用一個值填充該字段,一個同時接受 String name 參數和字符串文本參數。 然后也給它一個getter方法。

我不會嘗試獲得它的“變量”名稱,因為它接近無意義。 許多變量甚至沒有“名稱”,即一個對象可以被 2、3、100、...變量引用。


編輯
您在編輯中聲明:

為了更清楚地說明這一點:我有一個 JFrame,帶有一個 JPanel、一個 JScrollPane、一個 JTree 和一些文本字段。 根據單擊的節點(節點 1 或節點 2),我想顯示或隱藏某些文本字段。

同樣,變量名幾乎毫無意義,並且幾乎不存在於編譯代碼中。 重要的是變量引用——能夠獲取一個變量和對象狀態——該變量所持有的字段的狀態。

該線程有點舊,但在我看來,您不必派生任何類。 當您使用可選參數 userObj 初始化 DefaultMutableTreeNode 對象時,您可以通過調用 getUserObject() 再次獲取此參數。 有關更多信息,請參閱 api: https : //docs.oracle.com/javase/10/docs/api/javax/swing/tree/DefaultMutableTreeNode.html

我認為這幾乎是您正在尋找的東西 - 至少我正在尋找它。

暫無
暫無

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

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