繁体   English   中英

JScrolledPane中的JPane。 需要时没有垂直滚动条

[英]JPane inside JScrolledPane. No vertical scrollbar when needed

我在JScrolledPane中获得了JPane。 当我向JPane添加内容时,JScrollPane不会显示滚动条。 我尝试了repaint()和revalidate(),但没有帮助。

static void ladowaniePaneli()
    {
    int b;
    for(b=0;b<o;b++)
        {
        bgPanel[b] = new JBackgroundPanel();
        nowyPanel[b] = new JPanel();

        ((FlowLayout)bgPanel[b].getLayout()).setVgap(0);
        nowyPanel[b].setPreferredSize(new Dimension(790,518));
        nowyPanel[b].setOpaque(false);

        vertical[b] = new JScrollPane(nowyPanel[b]);
        vertical[b].setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
        vertical[b].setPreferredSize(new Dimension(789,517));
        vertical[b].setOpaque(false);
        vertical[b].getViewport().setOpaque(false);
        bgPanel[b].add(vertical[b]);           
        }
    }

滚动条从未显示是有道理的,因为您限制了所包含组件的大小,因此它总是比scrollopane的视口小很多:

nowyPanel[b].setPreferredSize(new Dimension(790,518));

解决方案:不要那样做。

如果我不使用setPreferredSize方法组件将不会翘曲到另一行

您可以尝试Wrap Layout

对超过JScrollPane宽度时,应将其变形为新行

组件分别布置。 我要包装一组组件,然后需要首先将组件添加到单独的面板中。 然后使用WrapLayout将面板添加到面板中。

暂无
暂无

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

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