CheckBox

AWT

In dit voorbeeld wordt een checkbox gebruikt om de letterstijl te veranderen

Applet

H8P3.jpg (10367 bytes)

Programmacode

// AwtCheckbox.java
// Maak Checkbox buttons.
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public class AwtCheckbox extends Applet implements ItemListener {
   private Font font = new Font( "TimesRoman", Font.PLAIN, 18 );
   private TextField tekstField = new TextField( "Hallo, allemaal", 25 );

   private Checkbox checkVet, checkCursief;

   public void init()   {
      checkVet = new Checkbox( "vet" );
      checkCursief = new Checkbox();  
      checkCursief.setLabel( "cursief" ); // checkbox tekst

      tekstField.setFont( font ); 

      add( tekstField );
      add( checkVet );     // standaard unchecked (false) 
      add( checkCursief ); 

      // aanmelden bij de ItemListener; wordt door gegeven aan itemStateChanged
      checkVet.addItemListener(this);
      checkCursief.addItemListener(this);
   }

   public void itemStateChanged( ItemEvent e )  {
      int vet, cursief;

      // filter Checkbox events
      if ( e.getSource() instanceof Checkbox ) {
         // test toestand van checkVet
         if ( checkVet.getState() == true  )  
            vet = Font.BOLD;
         else
            vet = Font.PLAIN;   

         // test toestand van checkCursief
         if ( checkCursief.getState() == true )
            cursief = Font.ITALIC;
         else
            cursief = Font.PLAIN;  
         // wijzig het lettertype
         font = new Font( "TimesRoman", vet + cursief, 18 );
         tekstField.setFont( font );
      }
   }
}

Uitleg

Wat is Checkbox?

Een checkbox is een selectie vierkantje (maar die naam hoor je niet vaak in het Nederlands). Van een checkbox kan de tekst en de status worden gelezen en geschreven met resp. getText, setText en getState en setState.

Een CheckBox genereert een ItemEvent die in een ItemListener wordt opgevangen in de itemStateChanged methode.

de init methode

De checkVet Checkbox wordt geinitieerd met de tekst "vet". De andere Checkbox checkCursief krijgt bij het alloceren geen tekst, maar deze wordt met de methode setLabel later aangebracht.
   checkVet = new Checkbox( "vet" );
   checkCursief = new Checkbox();  
   checkCursief.setLabel( "cursief" );
Het textField krijgt een iets groter lettertype om het beter zichtbaar te maken
      tekstField.setFont( font );
de componenten worden aangemeld bij de LayoutManager.
      add( tekstField );
      add( checkVet );     
      add( checkCursief );
Tenslotte worden beide Checkboxen aangemeld bij de ItemListener die de gegeneerde ItemEvent zal doorsluizen naar de itemStateChanged methode.
checkVet.addItemListener(this);
checkCursief.addItemListener(this);

de itemStateChanged methode

De afhandelingsmethode itemStateChanged ontvangt de ItemEvents van de Checkboxen. De uitvoering bestaat uit de volgende stappen:
   public void itemStateChanged( ItemEvent e )  {
      int vet, cursief;
      // filter Checkbox events
      if ( e.getSource() instanceof Checkbox ) {
         // test toestand van checkVet
         if ( checkVet.getState() == true  )  
            vet = Font.BOLD;
         else
            vet = Font.PLAIN;   
         // test toestand van checkCursief
         if ( checkCursief.getState() == true )
            cursief = Font.ITALIC;
         else
            cursief = Font.PLAIN;  
         // wijzig het lettertype
         font = new Font( "TimesRoman", vet + cursief, 18 );
         tekstField.setFont( font );
      }
   }

De checkbox klasse

public class Checkbox  extends Component 
public Checkbox(); 
public Checkbox(String label); 
public Checkbox(String label, CheckboxGroup group, boolean state);
constructors
   
public CheckboxGroup getCheckboxGroup(); haal de groep 
public void setCheckboxGroup(CheckboxGroup g);  stel de groep in
   
public String getLabel();  haal de tekst
public void setLabel(String label);  stel de tekst in 
   
public boolean getState();  haal de status
public void setState(boolean state);  stel de status in
copyright © Little World 1998