首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JTree对象转换

JTree对象转换
EN

Stack Overflow用户
提问于 2011-04-21 09:51:07
回答 2查看 2.8K关注 0票数 1

我有许多希望使用JTree显示的对象(包含各种唯一的字符串+变量)。到目前为止,我已经编写了代码,可以很好地设置树。

代码语言:javascript
复制
for(myClass Item : objectArray){
     ...
     DefaultMutableTreeNode newChild = new DefaultMutableTreeNode(Item);
     parentNode.add(newChild)
     ...
 }

然后,我使用对象的标识符在myClass中实现了toString()方法。例如,我的JTree看起来像这样:

代码语言:javascript
复制
    Root node
       + object1
       + object2
       + object3

添加侦听器后,我希望能够使用GUI选择所需的对象,访问其方法并显示对象的成员变量。然而,我在检索对象时遇到了问题。特别是这一行:

代码语言:javascript
复制
 myClass selectedObject = (myClass) jTree.getLastSelectedPathComponent()

这会给出以下运行时错误:

代码语言:javascript
复制
   javax.swing.tree.DefaultMutableTreeNode cannot be cast to myClass

有没有办法撤销原来的演员阵容?当然,强制转换为Jtree节点只是用额外的方法和变量包装了对象?我不知道该怎么办。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-21 09:54:31

我认为您需要来自DefaultMutableTreeNode的getUserObject()。然后你就可以把它传递给你的班级了。

票数 3
EN

Stack Overflow用户

发布于 2011-04-21 09:55:57

试一试

代码语言:javascript
复制
DefaultMutableTreeNode node = (DefaultMutableTreeNode) 
                              jTree.getLastSelectedPathComponent();

if (node != null)
{
     myClass selectedObject  = (myClass) node.getUserObject();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5738644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档