Tenho um JPanel com o layout de FlowLayout que preciso adicionar vários botões, quando chegar na largura limite preciso quebrar a linha, e quando chegar na altura máxima preciso adicionar um scrool vertical.
Estou usando o Netbeans para montar a parte gráfica, fiz assim:
Adicionei um JPanel, configurei e adicionei os botões assim:
jPanel.setLayout(new FlowLayout());
jPanel.setMaximumSize(new Dimension(520, 150));
JButton bt;
for(int i = 0; i <= 100; i++){
bt = new JButton("BT : " + i);
bt.setPreferredSize(new Dimension(80, 30));
jPanel.add(bt);
}
O resultado foi este:

Configurando o tamanho máximo do JPanel consegui quebrar a linha corretamente, mas precisa criar o scroll vertical. Para criar o scroll arrastei um JScrollPane e coloquei o JPanel dentro dele.
E configurei assim:
jScrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
jScrollPane.setMaximumSize(new Dimension(520, 150));
jPanel.setLayout(new FlowLayout());
jPanel.setMaximumSize(new Dimension(520, 150));
JButton bt;
for(int i = 0; i <= 100; i++){
bt = new JButton("BT : " + i);
bt.setPreferredSize(new Dimension(80, 30));
jPanel.add(bt);
}
O problema é que depois de adicionar o JScrollPane parou de quebrar a linha:
