-1

我在 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]);           
        }
    }
4

2 回答 2

3

滚动条永远不会被看到是有道理的,因为您限制了所包含组件的大小,因此它总是比滚动面板的视口大一点:

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

解决方案:不要那样做。

于 2013-05-28T02:22:06.967 回答
3

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

您可以尝试Wrap Layout

如果对超过 JScrollPane 宽度,则应将它们扭曲到新行

组件是单独布局的。如果您想要包装一组组件,那么您需要先将组件添加到单独的面板中。然后使用 WrapLayout 将面板添加到面板中。

于 2013-05-28T03:08:53.310 回答