RadioButton |
In dit voorbeeld wordt een radiobutton gemaakt door Checkboxes in een CheckboxGroup onder te brengen.
// AwtRadioButton.java
// Maak radiobuttons met CheckboxGroup en Checkbox.
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class AwtRadioButton extends Applet implements ItemListener {
private TextField tekstField = new TextField( "Hallo, allemaal", 30 );
private Font font;
private CheckboxGroup radio;
private Checkbox radioVet, radioCursief, radioNormaal;
public void init() {
// alloceer checkbox group en de radiobuttons
radio = new CheckboxGroup();
radioNormaal = new Checkbox("normaal", radio, true );
radioCursief = new Checkbox("cursief", radio, false);
radioVet = new Checkbox("vet", radio, false );
// voegt toe aan de LayoutManager
add( tekstField );
add( radioNormaal);
add( radioCursief);
add( radioVet );
// aanmelden bij de ItemListener; wordt afgehandeld in itemStateChanged
radioNormaal.addItemListener(this);
radioCursief.addItemListener(this);
radioVet.addItemListener(this);
}
public void itemStateChanged( ItemEvent e ) {
int stijl;
// filter Checkbox events
if ( e.getSource() instanceof Checkbox) {
// test toestand van radiobuttons
if ( radioNormaal.getState() == true )
stijl = Font.PLAIN;
else if ( radioCursief.getState() == true )
stijl = Font.ITALIC;
else
stijl = Font.BOLD;
// wijzig het lettertype
font = new Font( "TimesRoman", stijl, 14 );
tekstField.setFont( font );
}
}
}
|
In Java bestaan er geen apart radiobuttons. Het zijn "gewone" Checkboxen die zijn samengevoegd in een CheckboxGroup. Door ze onder te brengen in deze group veranderd het uiterlijk in een radiobutton.
init methode
Eerst wordt een CheckboxGroup gealloceerd, deze
wordt als parameter meegegeven aan de constructor van de drie
Checkboxen radioNormal, radioCursief en radioVet, die de drie
verschillende stijlen van een lettertype vertegenwoordigen.
De checkboxen en niet de CheckboxGroup, worden aangemeld bij de LayoutManager en de ItemListener.
public void init() {
// alloceer checkbox group en de radiobuttons
radio = new CheckboxGroup();
radioNormaal = new Checkbox("normaal", radio, true );
radioCursief = new Checkbox("cursief", radio, false);
radioVet = new Checkbox("vet", radio, false );
// voegt toe aan de LayoutManager
add( tekstField );
add( radioNormaal);
add( radioCursief);
add( radioVet );
// aanmelden bij de ItemListener; wordt afgehandeld in itemStateChanged
radioNormaal.addItemListener(this);
radioCursief.addItemListener(this);
radioVet.addItemListener(this);
}
itemStateChange methode
Nadat is gecontroleerd of het event van de Checkbox
afkomstig is, wordt gecontroleerd welke van de drie radiobuttons
is ingedrukt. Het kan altijd maar één van de drie zijn - een
eigenschap van radiobuttons-. Is een radiobutton geactiveerd dan
wordt de bijbehorende waarde toegekend aan de variabele stijl.
Met de waarde van stijl wordt een nieuw Font gealloceerd en de
tekst verschijnt in de aangeklikte stijl in het tekstField.
public void itemStateChanged( ItemEvent e ) {
int stijl;
if ( e.getSource() instanceof Checkbox) {
if ( radioNormaal.getState() == true )
stijl = Font.PLAIN;
else if ( radioCursief.getState() == true )
stijl = Font.ITALIC;
else
stijl = Font.BOLD;
font = new Font( "TimesRoman", stijl, 14 );
tekstField.setFont( font );
}
}
| public class CheckboxGroup | extends Object |
| public CheckboxGroup(); | Constructor |
| public Checkbox getSelectedCheckbox(); | haal de geselecteerde checkbox |
| public void setSelectedCheckbox(Checkbox box); | selecteer een checkbox |
| 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 |