好的,我对Java很新,所以请耐心等待。
我正在使用Netbeans 6.8编写一个包含JTree
组件的小型桌面应用程序,我的要求是我能够保存并加载树结构,但该结构允许三项信息每个树节点 - 要显示为节点的文本,唯一标识符和文件名。
当然,我还需要在点击节点时获取所有三位信息。
我已使用getModel()
和XMLDecoder
/ encoder
成功保存并加载了树模型,但这当然只保存默认树模型。
我已经按照几个关于创建自定义树模型的教程,但我发现它们令人困惑,我无法将他们告诉我的内容转移到我自己的项目中,因为当然他们通常会在一个中创建一个完整的示例应用程序去。
假设这样的树模型甚至是可能的,请有人解释如何创建这样的模型,最重要的是,如何将模型放入应用程序中已存在的JTree
(和如何在单击节点时检索信息 - 我当前可以找到所选节点并检索其文本)
如果不可能,我很乐意听到任何导致相同功能的替代方法。
已经达成了一个解决方案,感谢大家的努力,但是正确的答案必须安德鲁先发布!
对于那些感兴趣的人:
我使用Netbeans IDE创建了一个新的Javabean
对象。一旦我意识到这和普通对象之间的区别,我设法将新创建的Javabean
对象放入树节点。为了使一切顺利,我原来的保存方法仍然可以正常工作!
MVK
答案 0 :(得分:4)
要显示为节点的文本,唯一标识符和文件名。
将它们封装在JavaBean Object
中并使用适当的渲染器。
答案 1 :(得分:1)
默认情况下,JTree使用DefaultTreeModel,而DefaultTreeModel又使用DefaultMutableTreeNode来表示每个节点。您可以将任何对象分配给节点,并通过调用它的toString()方法来呈现它。
因此,最简单的解决方案是在类中封装所需的所有数据,并实现toString()方法以返回您想要显示的内容。另外,如果您按照JavaBeans规范实施课程,则可以免费获得XML序列化。
你真的应该看一下Swing教程,特别是How to use Trees。在阅读了如何处理树,列表和表格后,模型,渲染器和editosr将更加清晰。