import java.awt.Dimension; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import javax.swing.JButton; import javax.swing.JFrame; public class GridWindow extends JFrame { public GridWindow() { this.setSize(200, 200); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); this.getContentPane().setLayout(new GridBagLayout()); this.placeButtons(); this.addWindowListener(new GridWindowClosedEvent(this)); } private void placeButtons() { GridBagConstraints constraints = new GridBagConstraints(); JButton one = new JButton("1"); constraints.gridx = 0; constraints.gridy = 0; constraints.gridwidth = 2; constraints.gridheight = 1; constraints.fill = GridBagConstraints.BOTH; constraints.insets = new Insets(0, 0, 0, 0); constraints.weightx = 1.0; constraints.weighty = 1.0; this.getContentPane().add(one, constraints); JButton two = new JButton("2"); constraints.gridx = 2; constraints.gridy = 0; constraints.gridwidth = 1; constraints.gridheight = 2; constraints.fill = GridBagConstraints.BOTH; constraints.insets = new Insets(0, 0, 0, 0); constraints.weightx = 1.0; constraints.weighty = 1.0; this.getContentPane().add(two, constraints); JButton three = new JButton("3"); constraints.gridx = 1; constraints.gridy = 2; constraints.gridwidth = 2; constraints.gridheight = 1; constraints.fill = GridBagConstraints.BOTH; constraints.insets = new Insets(0, 0, 0, 0); constraints.weightx = 1.0; constraints.weighty = 1.0; this.getContentPane().add(three, constraints); JButton four = new JButton("4"); constraints.gridx = 0; constraints.gridy = 1; constraints.gridwidth = 1; constraints.gridheight = 2; constraints.fill = GridBagConstraints.BOTH; constraints.insets = new Insets(0, 0, 0, 0); constraints.weightx = 1.0; constraints.weighty = 1.0; this.getContentPane().add(four, constraints); JButton five = new JButton("5"); constraints.gridx = 1; constraints.gridy = 1; constraints.gridwidth = 1; constraints.gridheight = 1; constraints.fill = GridBagConstraints.NONE; constraints.insets = new Insets(0, 0, 0, 0); constraints.weightx = 0.0; constraints.weighty = 0.0; this.getContentPane().add(five, constraints); } }