繁体   English   中英

如何将JScrollPane调整为其包含的JTree

[英]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_NEEDEDJScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED 树的首选大小也应设置为null。 在这两个条件下,您的滚动条应自动显示\\ disapper(假设您使用的是标准JTreeJScrollPane )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM