Radio buttons

Bruce Eckel’s Thinking in Java Contents | Prev | Next

A
CheckboxGroup
has
no constructor argument; its sole reason for existence is to collect some
Checkboxes
into a group of radio buttons. One of the
Checkbox
objects must have its state set to
true
before you try to display the group of radio buttons; otherwise you’ll
get an exception at run time. If you try to set more than one radio button to
true
then only the final one set will be
true.

Here’s
a simple example of the use of radio buttons. Note that you capture radio
button events like all others:

//: RadioButton1.java
// Using radio buttons
import java.awt.*;
import java.applet.*;
 
public class RadioButton1 extends Applet {
  TextField t =
    new TextField("Radio button 2", 30);
  CheckboxGroup g = new CheckboxGroup();
  Checkbox
    cb1 = new Checkbox("one", g, false),
    cb2 = new Checkbox("two", g, true),
    cb3 = new Checkbox("three", g, false);
  public void init() {
    t.setEditable(false);
    add(t);
    add(cb1); add(cb2); add(cb3);
  }
  public boolean action (Event evt, Object arg) {
    if(evt.target.equals(cb1))
      t.setText("Radio button 1");
    else if(evt.target.equals(cb2))
      t.setText("Radio button 2");
    else if(evt.target.equals(cb3))
      t.setText("Radio button 3");
    else
      return super.action(evt, arg);
    return true;
  }
} ///:~ 

To
display the state, an text field is used. This field is set to non-editable
because it’s used only to display data, not to collect it. This is shown
as an alternative to using a
Label.
Notice the text in the field is initialized to “Radio button 2”
since that’s the initial selected radio button.

You
can have any number of
CheckboxGroups
on a form.

More by Author

Must Read