获取所有节点的正确坐标以绘制树

时间:2013-05-01 16:37:29

标签: java tree swt

Hello stackoverflow社区,

我有以下问题。假设我有一棵树,其中每个节点都有可变数量的子节点(其中叶子当然有0个孩子,其他节点1到基本上无限的孩子​​)。我想用SWT绘制这棵树。我不想知道如何使用SWT进行绘制,但是如何确定绘制每个节点的位置。我最想要的是父节点以其子节点为中心,并在兄弟姐妹之间有足够的空间,以便他们的孩子不会相互碰撞。我的大脑不会想出一个确定位置的算法。我希望这里有人可以提供帮助。

提前致谢! 干杯,帕特里克

3 个答案:

答案 0 :(得分:0)

您可以进行广度优先搜索。在每个级别上,学习关卡中节点的数量,然后进行计算并绘制它们,移动到树上的下一个级别,依此类推。

答案 1 :(得分:0)

我想到了以下步骤来确定绘制树的边界。

  1. 您需要知道树中的叶节点数(n)(正确地居中父节点)
  2. 你需要知道树的深度(d)。
  3. 指定树的每个级别的垂直间距(vs),水平间距(hs)等参数。
  4. 实施org.eclipse.swt.widgets.Layout并计算每个级别的节点边界

答案 2 :(得分:-1)

考虑任何操作系统中的文件树。它的确切情况。查看http://www.apl.jhu.edu/~hall/java/Swing-Tutorial/Swing-Tutorial-JTree.html以了解如何实施一个!不确定你是在寻找如何实现它或自己绘画,但我不建议你自己画画。

相关问题