img
gbc.gridwidth = GridBagConstraints.RELATIVE;
gbag.setConstraints(solaris, gbc);
gbc.gridwidth = GridBagConstraints.REMAINDER;
gbag.setConstraints(mac, gbc);
// Add the components.
add(winXP);
add(winVista);
add(solaris);
add(mac);
// Register to receive item events.
winXP.addItemListener(this);
winVista.addItemListener(this);
solaris.addItemListener(this);
mac.addItemListener(this);
}
// Repaint when status of a check box changes.
public void itemStateChanged(ItemEvent ie) {
repaint();
}
// Display current state of the check boxes.
public void paint(Graphics g) {
msg = "Current state: ";
g.drawString(msg, 6, 80);
msg = "  Windows XP: " + winXP.getState();
g.drawString(msg, 6, 100);
msg = "  Windows Vista: " + winVista.getState();
g.drawString(msg, 6, 120);
msg = "  Solaris: " + solaris.getState();
g.drawString(msg, 6, 140);
msg = "  Mac: " + mac.getState();
g.drawString(msg, 6, 160);
}
}
The output produced by the program is
shown here.
In this layout, the operating system check
boxes are positioned in a 2×2 grid. Each cell has a
horizontal padding of 200. Each component is inset
slightly (by 4 units) from the top left. The column
weight is set to 1, which causes any extra horizontal
space to be distributed evenly between the columns.
The first row uses a default weight of 0; the second
has a weight of 1. This means that any extra vertical
space is added to the second row.
GridBagLayout is a powerful layout manager. It
is worth taking some time to experiment with and explore. Once you understand what the
various settings do, you can use GridBagLayout to position components with a high degree
of precision.
Search WWH :
Custom Search
Previous Page
Java SE 6 Topic Index
Next Page
Java SE 6 Bookmarks
Home