2011-04-21 116 views
1

我有一些對象(包含各種獨特的字符串+變量),我想使用JTree顯示。到目前爲止,我已經編寫了設置樹的代碼。JTree對象鑄造

for(myClass Item : objectArray){ 
    ... 
    DefaultMutableTreeNode newChild = new DefaultMutableTreeNode(Item); 
    parentNode.add(newChild) 
    ... 
} 

我已經然後myClass與所述對象的標識符實現的toString()方法。因此,例如,我的JTree看起來是這樣的:

Root node 
     + object1 
     + object2 
     + object3 

添加一個傾聽者,我希望能夠選擇使用GUI所需的對象,獲得它的方法和顯示對象的成員變量。但是,我無法檢索對象。特別是這一行:

myClass selectedObject = (myClass) jTree.getLastSelectedPathComponent() 

它提供了以下運行時錯誤:

javax.swing.tree.DefaultMutableTreeNode cannot be cast to myClass 

難道有辦法撤消原班人馬?當然,轉換到Jtree節點只是用額外的方法和變量包裝對象?我不知道該怎麼做。

回答

2

我想你想從DefaultMutableTreeNode getUserObject()。然後你可以將它投射到你的班級。

+0

唉,我是一個工具。你完全正確,謝謝你。 – Roger 2011-04-21 02:01:52

0

嘗試

DefaultMutableTreeNode node = (DefaultMutableTreeNode) 
           jTree.getLastSelectedPathComponent(); 

if (node != null) 
{ 
    myClass selectedObject = (myClass) node.getUserObject(); 
} 
+0

作品謝謝 – Roger 2011-04-21 02:02:43