2011-04-21 159 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