import javax.swing.*;
import java.awt.*;
public class GridBagLayoutDemo {
public GridBagLayoutDemo() {
JFrame frame = new JFrame("GridBagLayoutDemo");
frame.setSize(600, 400);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GridBagPanel gbPanel = new GridBagPanel();
JButton btn1 = new JButton("1");
gbPanel.addComponent(btn1, 0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL);
JButton btn2 = new JButton("2");
gbPanel.addComponent(btn2, 1, 0, 2, 1, 1.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL);
JButton btn3 = new JButton("3");
gbPanel.addComponent(btn3, 3, 0, 0, 1, 0.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL);
JButton btn4 = new JButton("4");
gbPanel.addComponent(btn4, 0, 1, 1, 1, 0.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL);
JButton btn5 = new JButton("5");
gbPanel.addComponent(btn5, 1, 1, 2, 1, 1.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL);
JButton btn6 = new JButton("6");
gbPanel.addComponent(btn6, 3, 1, 0, 1, 0.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL);
JButton btn7 = new JButton("7");
gbPanel.addComponent(btn7, 0, 2, 1, 1, 0.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL);
JButton btn8 = new JButton("8");
gbPanel.addComponent(btn8, 1, 2, 2, 1, 1.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL);
JButton btn9 = new JButton("9");
gbPanel.addComponent(btn9, 3, 2, 0, 1, 0.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL);
JButton btn10 = new JButton("10");
gbPanel.addComponent(btn10, 0, 3, 1, 1, 0.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL);
JButton btn11 = new JButton("11");
gbPanel.addComponent(btn11, 1, 3, 2, 1, 1.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL);
JButton btn12 = new JButton("12");
gbPanel.addComponent(btn12, 3, 3, 0, 1, 0.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL);
JButton btn13 = new JButton("13");
gbPanel.addComponent(btn13, 0, 4, 2, 1, 0.5, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL);
JButton btn14 = new JButton("14");
gbPanel.addComponent(btn14, 2, 4, 0, 1, 0.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL);
JButton btn15 = new JButton("15");
gbPanel.addComponent(btn15, 0, 5, 2, 1, 0.5, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL);
JButton btn16 = new JButton("16");
gbPanel.addComponent(btn16, 2, 5, 0, 1, 0.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL);
JButton btn17 = new JButton("17");
gbPanel.addComponent(btn17, 0, 6, 2, 1, 0.5, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL);
JButton btn18 = new JButton("18");
gbPanel.addComponent(btn18, 2, 6, 0, 1, 0.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL);
JButton btn19 = new JButton("19");
gbPanel.addComponent(btn19, 0, 7, 1, 1, 0.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL);
JButton btn20 = new JButton("20");
gbPanel.addComponent(btn20, 1, 7, 2, 1, 0.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL);
JButton btn21 = new JButton("21");
gbPanel.addComponent(btn21, 4, 7, 1, 1, 0.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL);
JButton btn22 = new JButton("22");
gbPanel.addComponent(btn22, 5, 7, 1, 1, 0.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL);
JButton btn23 = new JButton("23");
gbPanel.addComponent(btn23, 0, 8, 1, 1, 0.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL);
JButton btn24 = new JButton("24");
gbPanel.addComponent(btn24, 1, 8, 2, 1, 0.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL);
JButton btn25 = new JButton("25");
gbPanel.addComponent(btn25, 4, 8, 1, 1, 0.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL);
JButton btn26 = new JButton("26");
gbPanel.addComponent(btn26, 5, 8, 1, 1, 0.0, 1.0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL);
JButton btn27 = new JButton("Ein fetter Button");
btn27.setMargin(new Insets(20, 20, 20, 20));
gbPanel.addComponent(btn27, 0, 9, 0, 1, 0.0, 0.0, GridBagConstraints.SOUTHEAST, GridBagConstraints.NONE);
frame.add(gbPanel);
frame.setVisible(true);
}
class GridBagPanel extends JPanel {
public GridBagPanel() {
super(new GridBagLayout());
}
public void addComponent(JComponent c, int gridx, int gridy, int gridwidth, int gridheight, double weightx, double weighty, int anchor, int fill) {
add(c, new GridBagConstraints(gridx, gridy, gridwidth, gridheight, weightx, weighty, anchor, fill, new Insets(1, 1, 1, 1), 0, 0));
}
}
public static void main(String[] args) {
new GridBagLayoutDemo();
}
}