【发布时间】:2017-03-30 14:24:53
【问题描述】:
我已经构建了自己的 K-ary 树,其中包含存储有关文件系统条目的数据的节点。我希望能够以JScrollPane 或类似的方式显示它。我现在找到了JTree 类,但我正在努力寻找如何有效地将信息从我的树转换到JTree,同时仍然保持我的树功能,例如我希望能够选择一个来自JTree 的节点并从我自己的树中获取信息。
public class DirectoryTree implements Serializable {
private TreeNode Root;
private int numNodes;
private TreeNode Focus;
private LocalDateTime date;
private long totalSizeOnDisk;
我最初决定创建一个类NodeWithButton,并使用按钮在滚动窗格上创建一个树层次结构,但我必须递归地创建它们和它们的侦听器,这一切都变得有点难以处理。
【问题讨论】:
-
Swing 基于数据模型。当您有自己的数据希望 Swing 组件显示时,您可以编写自己的模型来包装您的数据。在这种情况下,您应该编写自己的 TreeModel 实现。
-
@VGR 你的意思是我应该编写另一个实现 TreeModel 并包含我的 DirectoryTree 对象的类,然后让 JScrollPane 显示它?
-
第一部分是的,但 JScrollPane 与它无关。
-
@AndrewThompson 谢谢!这将有很大帮助。
标签: java swing tree jscrollpane jtree