У меня есть куча кнопок на 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);
кнопки отображаются только в одном ряду (и я даже не вижу тех, что справа). Я все еще хочу, чтобы они обернулись. Что здесь происходит? Кстати, мне нужно показать только вертикальную полосу прокрутки, а не горизонтальную полосу прокрутки. Я хочу, чтобы кнопки переносились в новую строку, когда они достигают правого конца.