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);

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


person Paul Reiners    schedule 20.04.2011    source источник
comment
Почему ты не читаешь ответы на свой последний вопрос?   -  person camickr    schedule 20.04.2011
comment
Я прочитал ответы на свой последний вопрос (на самом деле, я прокомментировал пару из них). Я понял, что задал неправильный вопрос. Я хочу FlowLayout. Я просто не понимаю, почему добавление JScrollPane приводит к тому, что кнопки не переносятся на новые строки, когда они достигают правой стороны.   -  person Paul Reiners    schedule 20.04.2011
comment
Если вы так говорите, но я дал вам ответ более 2 часов назад.   -  person camickr    schedule 20.04.2011


Ответы (1)


Посмотрите мой ответ здесь: Как я могу позволить JToolBars переноситься на следующую строку (FlowLayout), не скрывая их от JPanel под ними?

Существует пользовательский макет потока, который я использовал именно в этой ситуации. Просто подключите его, и он прокручивается даже в области прокрутки.

person jzd    schedule 20.04.2011