自动将JTree扩展到满足高度阈值

时间:2011-08-17 13:29:40

标签: java swing jtree

作为GUI的一部分,我在JScrollPane上有一个JTree。我已经设置了一个AncestorListener,我在其中响应了ancestorAdded事件。在这种情况下,我希望自动扩展尽可能多的可见节点。通过 visible ,我的意思是我想扩展尽可能多的节点,使树的总高度不超过JScrollPane视口的最大高度。如果我的视口有500px的可见空间,我希望树展开,直到总展开高度小于或等于500px。

我试图通过几种不同的方式实现这一目标。归结为:在以编程方式扩展节点后,我似乎无法检索树的更新高度。我怎样才能重新计算树的高度?例如,tree.getHeight()在扩展节点后总是返回相同的值。在计算之间调用tree.invalidate()也无济于事。

1 个答案:

答案 0 :(得分:1)

  

如何重新计算树的高度?

也许getVisibleRowCount() * getRowHeight()会为您提供正确的尺寸。

getRowHeight()的文档指出它可能会返回<= 0并将行高保留在渲染器上,当您使用JTreeTable时可能就是这种情况。