如何在 Java 中显示树的层次结构?

Posted

技术标签:

【中文标题】如何在 Java 中显示树的层次结构?【英文标题】:How to display tree hierarchy in Java? 【发布时间】:2011-01-07 06:31:35 【问题描述】:

我在名为“Process”的数据库中有一个表

这个进程表有3个字段:

process_id 进程名称 process_parent_id

现在我想以图形格式显示这个父子层次结构。那么您能否建议我以下内容:

第一季度。使用哪种数据结构更好地从数据库中获取数据并存储在该数据结构中?

第二季度。如何以图形格式显示该树(流程层次结构)?


编辑:

我想要这样的图形格式:

【问题讨论】:

这个明显的问题是最好把这样的东西放在滚动窗格中,无论是水平的还是垂直的。否则,该图可能会在两个方向上大幅扩展,并且没有一个好的方法来处理它。因此,JTree 不是一个坏选择。 【参考方案1】:

Swing 有一个内置控件,用于以树格式显示数据,称为JTree。它还提供了一个名为DefaultTreeModel 的数据模型,您可以使用它来存储数据。 This link 很好地解释了将 JTree 与数据模型一起使用。

[编辑]:

为了回答您更新的问题,JGraph 可以很好地处理这样的图表,这也将提供似乎与摇摆提供的树模型类似的数据模型。

【讨论】:

【参考方案2】:

关于 Q1:您可以在 Internet 资源上找到树结构的几个 Java 实现,例如 this generic tree。

关于 Q2:另一种选择是 using JTree。查看How to use Trees 上的 Java 教程跟踪

JGraphT 可能是构建类似您的示例的良好起点。在http://jgrapht.sourceforge.net/visualizations.html查看演示

【讨论】:

【参考方案3】:

正如其他人所建议的,使用JTree 是一种可能的解决方案。但是,如果您希望更好地控制树的外观,我建议您查看JUNG 图形库。这可能会给你带来很好的结果,但需要更多的工作。

【讨论】:

【参考方案4】:

对于图形格式的层次结构,JTree 呢? http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html

【讨论】:

以上是关于如何在 Java 中显示树的层次结构?的主要内容,如果未能解决你的问题,请参考以下文章

二叉树的直观显示

您如何在 Ruby 应用程序中以树的形式跟踪“require”的完整序列和顺序?

如何知道视图层次结构中是不是显示 UIActionSheet?

如何在多个java类中自动修改代码?

树——通用树的层次遍历

如何在雪花中获取用户角色层次结构?