import javax.swing.*; import java.awt.*; /** Demonstratie van het gedrag van een * lay-outmanager van het type * GridBagLayout. * @author Lieven Smits * @version 1.0 24/7/2000 */ class GridBagDemo extends JFrame { /** De algemene titel van het formulier. */ JLabel lblReservatieformulier = new JLabel("Reservatieformulier"); /** Een vaste tekst om de betekenis van een tekstveld * te verduidelijken. */ JLabel lblNaam = new JLabel("Naam:"), lblLezersnummer = new JLabel("Lezersnummer:"), lblStatuut = new JLabel("Statuut:"), lblTitelBoek = new JLabel("Titel boek:"), lblAuteur = new JLabel("Auteur:"); /** De naam van een lid van de bibliotheek. */ JTextField txtNaam = new JTextField(); /** Uniek nummer van een lid van de bibliotheek. */ JTextField txtLezersnummer = new JTextField(); /** Titel op de kaft van het boek. */ JTextField txtTitelBoek = new JTextField(); /** Naam van de eerste auteur van het boek. */ JTextField txtAuteur = new JTextField(); /** Keuzemogelijkheid voor het statuut van de lezer. */ JRadioButton radStudent = new JRadioButton("student", true), radPersoneel = new JRadioButton("personeel"), radExtern = new JRadioButton("extern"); /** Drie keuzemogelijkheden voor het statuut als lezer. */ ButtonGroup grpStatuut = new ButtonGroup(); /** Construeer een venster met zes labels en * vier tekstvelden van verschillende afmetingen, * en drie onderling gekoppelde keuzerondjes. */ GridBagDemo() { super("Demonstratie GridBagLayout"); Container hetPaneel = getContentPane(); // construeer een object van het type GridBagLayout GridBagLayout deManager = new GridBagLayout(); // construeer een object van het type GridBagConstraints GridBagConstraints c = new GridBagConstraints(); // associeer de lay-outmanager met de container hetPaneel.setLayout(deManager); // bouw de groep van drie keuzerondjes op grpStatuut.add(radStudent); grpStatuut.add(radPersoneel); grpStatuut.add(radExtern); // maak de titel opvallend Font oudType = lblReservatieformulier.getFont(); float lettergrootte = oudType.getSize() * 2; Font nieuwType = oudType.deriveFont(Font.BOLD, lettergrootte); lblReservatieformulier.setFont(nieuwType); lblReservatieformulier.setHorizontalAlignment(SwingConstants.CENTER); /* Geef telkens de juiste waarden aan de attributen van c alvorens een component aan de container toe te voegen. Daarbij kunnen vroeger ingestelde waarden behouden blijven. */ c.weightx = 0.5; c.weighty = 0.5; c.gridwidth = 2; c.fill = GridBagConstraints.BOTH; c.ipadx = c.ipady = 5; deManager.setConstraints(lblReservatieformulier, c); hetPaneel.add(lblReservatieformulier); c.weightx = 0.1; c.gridwidth = 1; c.gridy = 1; c.fill = GridBagConstraints.HORIZONTAL; c.anchor = GridBagConstraints.WEST; c.ipadx = c.ipady = 0; deManager.setConstraints(lblNaam, c); hetPaneel.add(lblNaam); c.gridy = 2; deManager.setConstraints(lblLezersnummer, c); hetPaneel.add(lblLezersnummer); c.gridy = 3; deManager.setConstraints(lblStatuut, c); hetPaneel.add(lblStatuut); c.weightx = 0.5; c.gridx = 1; c.gridy = 1; deManager.setConstraints(txtNaam, c); hetPaneel.add(txtNaam); c.gridy = 2; deManager.setConstraints(txtLezersnummer, c); hetPaneel.add(txtLezersnummer); c.gridy = 3; deManager.setConstraints(radStudent, c); hetPaneel.add(radStudent); c.gridy = 4; deManager.setConstraints(radPersoneel, c); hetPaneel.add(radPersoneel); c.gridy = 5; deManager.setConstraints(radExtern, c); hetPaneel.add(radExtern); c.gridx = 0; c.gridy = 6; c.gridwidth = 2; deManager.setConstraints(lblTitelBoek, c); hetPaneel.add(lblTitelBoek); c.gridy = 7; deManager.setConstraints(txtTitelBoek, c); hetPaneel.add(txtTitelBoek); c.gridy = 8; deManager.setConstraints(lblAuteur, c); hetPaneel.add(lblAuteur); c.gridy = 9; deManager.setConstraints(txtAuteur, c); hetPaneel.add(txtAuteur); } /** Toon een reservatieformulier voor een * bibliotheek. */ public static void main(String[] args) { GridBagDemo hetVenster = new GridBagDemo(); hetVenster.setSize(320, 240); hetVenster.show(); } }