我有许多希望使用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节点只是用额外的方法和变量包装了对象?我不知道该怎么办。
发布于 2011-04-21 09:54:31
我认为您需要来自DefaultMutableTreeNode的getUserObject()。然后你就可以把它传递给你的班级了。
发布于 2011-04-21 09:55:57
试一试
DefaultMutableTreeNode node = (DefaultMutableTreeNode)
jTree.getLastSelectedPathComponent();
if (node != null)
{
myClass selectedObject = (myClass) node.getUserObject();
}https://stackoverflow.com/questions/5738644
复制相似问题