FlowLayout не течет с JScrollPane вокруг него - PullRequest
4 голосов
/ 20 апреля 2011

У меня есть несколько кнопок на 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);

кнопки показаны только в одном ряду (и я даже не вижу их справа). Я все еще хочу, чтобы они завернулись. Что здесь происходит? Кстати, мне нужно показать только вертикальную полосу прокрутки и не горизонтальную полосу прокрутки. Я хочу, чтобы кнопки переносились в новый ряд, когда они достигают правого края.

...