[英]How to adjust a JScrollPane to its contained JTree
这里我有一个挥杆尺寸的问题:
我有一个JTree
包含在JScrollPane
( 包含在自定义组件中,该组件从swingx扩展JXPanel,但我认为与这个问题无关 )。
不管树有多少行,滚动窗格总是更大(树是动态的,但没有设计成有很多行),但是我想要的是JScrollPane,可以调整到树的初始高度,然后显示垂直滚动当某些节点扩展时。
我试过不设置任何大小,将树的preferred size to null
设置preferred size to null
以及将滚动窗格的preferred size to null
设置preferred size to null
,但是没有任何变化。 我不想手动设置尺寸。有没有办法做到这一点?
谢谢
我通常只使用setVisibleRowCount()
。
JTree tree = new JTree(...)
{
@Override
public Dimension getPreferredScrollableViewportSize()
{
return getPreferredSize();
}
};
我只是遇到这个问题,这是做到这一点,而无需指定从JTree中尺寸的最佳途径,也没有你的JScrollPane的是JTree的设置setViewportView JScrollPane的 ()方法。
JScrollPane scrollTree = new JScrollPane(yourJTree);
scrollTree.setViewportView(yourJTree);
我认为这是最好的方法,因为您不需要指定任何大小的Component或获取许多行来调整滚动窗格。
尝试检查scrollPane.getHorizontalScrollBarPolicy()
和scrollPane.getVerticalScrollBarPolicy()
。 它们应等于JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED
和JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED
。 树的首选大小也应设置为null。 在这两个条件下,您的滚动条应自动显示\\ disapper(假设您使用的是标准JTree
和JScrollPane
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.