【发布时间】:2011-08-17 13:29:39
【问题描述】:
作为我的 GUI 的一部分,我在 JScrollPane 上有一个 JTree。我已经设置了一个 AncestorListener,我在其中响应了 ancestorAdded 事件。在这种情况下,我想自动扩展尽可能多的 可见 节点。 可见,我的意思是我想扩展尽可能多的节点,以使树的总高度不超过 JScrollPane 视口的最大高度。如果我的视口有 500px 的可见空间,我希望树展开直到总展开高度小于或等于 500px。
我尝试了几种不同的方式来实现这一点。归结为:在以编程方式扩展节点后,我似乎无法检索树的更新高度。如何重新计算树的高度?例如,tree.getHeight() 始终返回相同的值,即使在我展开节点后也是如此。在计算之间调用 tree.invalidate() 也没有帮助。
【问题讨论】:
-
困惑 - 表格在哪里/如何发挥作用?
-
您在描述中将两个不同的
JComponents JTree(关于Nodes)与JTable(关于table.getHeight()和invalidate())混合在一起,出现问题,请发布可运行代码这表明... -
哎呀。我实际上正在使用 TreeTable,但出于问题的目的,一切都适用于 JTree。我修复了我发布的问题中的所有内容。