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

8

我有一个名为“Process”的数据库表格。

这个process表格有三个字段:

  • process_id
  • process_name
  • process_parent_id

现在我想以图形格式显示这个父子层次结构。请问以下问题:

Q1. 哪种数据结构更好用于从数据库获取数据并将其存储在该数据结构中?

Q2. 如何以图形格式显示树(进程层次结构)?


编辑:

我想要的图形格式类似于这样:

Tree hierarchy


这样做的明显问题是最好将其放在滚动窗格中,无论是水平还是垂直。否则,图表可能会在两个方向上潜在地扩展,而没有很好的处理方式。因此,JTree不是一个坏选择。 - Alexander Mills
4个回答

16

Swing内置了一种用于以树形格式显示数据的控件,称为JTree。它还提供了一个名为DefaultTreeModel的数据模型,您可以使用它来存储数据。这个链接提供了一个非常好的关于如何使用JTree和数据模型的说明。

[编辑]:

回答您更新后的问题,像那样的图表可以很好地使用JGraph来处理,该工具还提供了类似于 Swing 提供的树模型的数据模型。


5

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


3

2

关于问题1:您可以在互联网资源中找到几个Java实现的树结构,例如这个通用树

关于问题2:一种替代方法是使用JTree。请查看Java教程上的如何使用树

JGraphT可以成为构建类似于您示例的东西的良好起点。请查看演示


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接