c3e import java.awt.*; import java.awt.event.*; import javax.swing.*; public class GridBagWindow2 extends JFrame { boolean inAnApplet = true; final boolean shouldFill = true; final boolean shouldWeightX = true; public GridBagWindow2() { JLabel [] labels; JTextField [] textFields; String [] labelTexts = {"Name", "Address", "Phone"}; int [] textWidths = {30, 25, 10}; JButton okButton, cancelButton; JPanel pane = new JPanel(); pane.setBorder(BorderFactory.createEmptyBorder( 20, //top 20, //left 10, //bottom 20) //right ); GridBagLayout gridbag = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); pane.setLayout(gridbag); labels = new JLabel[3]; textFields = new JTextField[3]; for (int i = 0; i < 3; i++) { labels[i] = new JLabel(labelTexts[i]); textFields[i] = new JTextField(textWidths[i]); } addLabelTextRows(labels, textFields, gridbag, pane); JPanel buttonPane = new JPanel(); okButton = new JButton("OK"); cancelButton = new JButton("Cancel"); buttonPane.add(okButton); buttonPane.add(cancelButton); c.gridwidth = GridBagConstraints.REMAINDER; c.gridx = 0; c.gridy = 3; c.weighty = 1.0; c.anchor = GridBagConstraints.SOUTH; c.insets = new Insets(25, 0, 0, 0); gridbag.setConstraints(buttonPane, c); pane.add(buttonPane); getContentPane().add(pane, BorderLayout.CENTER); } private void addLabelTextRows(JLabel[] labels, JTextField[] textFields, GridBagLayout gridbag, Container container) { GridBagConstraints c = new GridBagConstraints(); int numLabels = labels.length; Insets insets = new Insets(0, 0, 10, 0); c.anchor = GridBagConstraints.WEST; c.fill = GridBagConstraints.NONE; for (int i = 0; i < numLabels; i++) { c.anchor = GridBagConstraints.EAST; c.gridwidth = GridBagConstraints.RELATIVE; //next-to-last c.weightx = 0.0; //reset to default insets.right = 10; c.insets = insets; gridbag.setConstraints(labels[i], c); container.add(labels[i]); c.anchor = GridBagConstraints.WEST; c.gridwidth = GridBagConstraints.REMAINDER; //end row c.weightx = 1.0; insets.right = 0; c.insets = insets; gridbag.setConstraints(textFields[i], c); container.add(textFields[i]); } } public static void main(String args[]) { GridBagWindow2 window = new GridBagWindow2(); window.setTitle("GridBagLayout"); WindowListener l = new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }; window.addWindowListener(l); window.pack(); window.setLocation(300, 250); window.setVisible(true); } } . 0