我有一个在JScrollPane中显示的大型JTree(很多节点)。我想允许最后一个树节点显示在JScrollPane的顶部。默认情况下,Swing似乎不允许这样做,显示(完全展开的)JTree以及JScrollPane底部的最后一个节点。 JScrollBar拇指触及其轨道的底部。
我正在使用JViewport.setViewPosition()方法将树节点的左上角位置设置为JViewport中的左上角位置,但如果这会导致它显示“空白”,则拒绝这样做在JTree的底部。
我尝试通过设置大小(.setViewSize为旧值+ .getExtentSize()的额外高度)来操纵JViewport,但它仍然拒绝让拇指向下移动,即使它现在不在其轨道的底部。我正在调整事件处理程序(.addChangeListener)中的JViewport大小。
答案 0 :(得分:1)
我想你可以将JTree的首选大小覆盖为默认的首选大小加上视口的范围大小减去JTree一行的高度。
答案 1 :(得分:0)
如果你把你的JTree放在底部有空格的VBox中,然后用JScrollPane包装VBox怎么办?