Ciao, stò cercando di inserire diversi Jpanel che contengono alcuni bottoni, all'interno di un Jscrollpane.
Il problema è che se inserisco un solo Jpanel, tutto funziona (immagine 1).
Ma se ne inserisco N, qualcosa non và, cioè vengono messi in orizzontale e in modo confuso(immagine 2).
Ecco il codice completo, grazie per l'aiuto.
public class Main extends javax.swing.JFrame {
JPanel borderLayoutPanel;
public Main() {
//PANEL ESISTENTE
gridPanel = new JPanel(new GridLayout(0, 1));
//SCOLLPANE ESISTENTE
jScrollPane3 = new JScrollPane(gridPanel);
jScrollPane3.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
borderLayoutPanel = new JPanel(new BorderLayout());
borderLayoutPanel.add(jScrollPane3, BorderLayout.CENTER);
this.Avvio();
this.add(borderLayoutPanel, BorderLayout.CENTER);
}
private void Avvio() {
JPanel pane = new JPanel(new GridBagLayout());
pane.setBorder(BorderFactory.createLineBorder(Color.BLUE));
for (int i = 0; i < 10; i++) {
JButton button;
pane.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.HORIZONTAL;
c.anchor = GridBagConstraints.PAGE_START;
button = new JButton("Button 1");
c.weightx = 0.5;
c.gridx = 0;
c.gridy = 0;
pane.add(button, c);
button = new JButton("Button 2");
c.gridx = 0;
c.gridy = 1;
pane.add(button, c);
button = new JButton("Button 3");
c.gridx = 1;
c.gridy = 1;
pane.add(button, c);
gridPanel.add(pane);
gridPanel.revalidate();
gridPanel.repaint();
jScrollPane2.setViewportView(pane);
}
}
Allegati: