FlowLayout不流动与JScrollPane围绕它



我有一堆按钮在JPanel使用FlowLayout。它看起来真的很漂亮。当按钮到达面板的右侧时,它们开始在一个新的行上创建一个漂亮的二维网格。

代码如下:

    Container cp = getContentPane();
    JPanel panel = new JPanel();
    panel.setLayout(new FlowLayout());
    for (int i = 0; i < 20; i++)
        panel.add(new JButton("Button " + i));
    cp.add(panel);

然而,当我把面板放在只有垂直滚动的滚动窗格中时:

    Container cp = getContentPane();
    JPanel panel = new JPanel();
    panel.setLayout(new FlowLayout());
    for (int i = 0; i < 20; i++)
        panel.add(new JButton("Button " + i));
    JScrollPane pane = new JScrollPane(
            panel,
            ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
            ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
    cp.add(pane);

按钮只显示在一行中(我甚至看不到右边的按钮)。我还是想让他们包起来。这是怎么回事?顺便说一下,我只需要显示垂直滚动条,不需要显示水平滚动条。我希望按钮在到达右端时换行到新行

查看我的答案在这里:我怎么能让JToolBars wrap到下一行(FlowLayout)而不被隐藏在他们下面的JPanel ?

我在这种情况下使用了一个自定义流布局。只要插入它,它甚至可以在滚动窗格中自动换行。

相关内容

  • 没有找到相关文章

最新更新