Denke da wäre das GridBagLayout besser geeignet. Wahrscheinlich ist das auch mit dem TableLayout (https://tablelayout.dev.java.net/) machbar
Das was du vor hast, geht aber nun mal mit GridLayout nicht.- und gridbaglayout ist mir ehrlich gesagt zu aufwendig, wenn es immer so ne Struktur ist:
gbc.gridwidth = 2;
package myPackage;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class AboutLayouts extends JFrame {
public AboutLayouts() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new GridLayout(0, 1));
add(addColumn());
add(addColumn());
add(addColumn());
add(addColumn());
add(new JButton("Fertig"));
pack();
setVisible(true);
}
private JComponent addColumn(){
JComponent column = new JPanel();
column.setLayout(new GridLayout(1,0));
column.add(new JLabel("1"));
column.add(new JButton("1"));
return column;
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable(){
@Override
public void run() {
new AboutLayouts();
}
});
}
}
JFrame frame = new JFrame();
GridBagLayout layout = new GridBagLayout();
frame.setLayout(layout);
GridConstraints con = new GridConstraints();
con.gridx = 0;
con.gridy = 0;
con.gridwidth = 2;
...