import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;
public class Radio extends JPanel implements ItemListener { //*1 Our own object, made of a JPanel, holding JRadioButtons and a ButtonGroup
public Radio () {
// Border around our JPanel
setBorder (new LineBorder(Color.BLUE, 1)); //*1
ButtonGroup g = new ButtonGroup (); //*4 ButtonGroup makes them behave as radio buttons
JRadioButton rb = new JRadioButton ("I", false); //*2 Create buttons
add (rb); //*3 Add button to our panel
g.add (rb); //*5 Also add button to our ButtonGroup
rb.addItemListener (this); //*6 Make entire Radio be listener for all buttons, use getItem() to disambiguate
rb = new JRadioButton ("II", true); //*2
add (rb); //*3
g.add (rb); //*5
rb.addItemListener (this); //*6
rb = new JRadioButton ("III", false); //*2
add (rb); //*3
g.add (rb); //*5
rb.addItemListener (this); //*6
rb = new JRadioButton ("IV", false); //*2
add (rb); //*3
g.add (rb); //*5
rb.addItemListener (this); //*6
}
public void itemStateChanged (ItemEvent e) {
// Reports every select or deselect, we filter out
if (e.getStateChange()==ItemEvent.SELECTED) {
System.out.println ("Radio: " + ((JRadioButton)e.getItem()).getText()); //*6
}
}
}