Los Botones de Radio son grupos de botones en los que, por convenci�n, s�lo uno de ellos puede estar seleccionado. Swing soporta botones de radio con las clases JRadioButton y ButtonGroup. Para poner un bot�n de radio en un men�, se utiliza la clase JRadioButtonMenuItem. Otras formas de presentar una entre varias opciones son los combo boxes y las listas. Los botones de radio tienen un aspecto similar a los check boxes, pero, por convenci�n, los checkboxes no tienen l�mites sobre cuantos �tems pueden estar seleccionados a la vez.
Como JRadioButton desciende de AbstractButton, los botones de radio Swing tienen todas las caracter�sitcas de los botones normales. como se explic� en C�mo usar Buttons. Por ejemplo, se puede especificar la imagen mostrada por un bot�n de radio.
| Nota: En Swing 1.0.2, los botones ignoran sus mnem�nicos (teclas aceleradoras). Este error se ha corregido en Swing 1.0.3. |
Aqu� podemos ver una imagen de una aplicaci�n que utiliza cinco botones de radio para elegir qu� tipo de mascota mostrar.

Intenta esto:
|
Cada vez que el usuario pulsa un bot�n de radio, (incluso si ya estaba seleccionado), el bot�n dispara un evento action. Tambi�n ocurren uno o dos eventos item -- uno desde el bot�n que acaba de ser seleccionado, y otro desde el bot�n que ha perdido la selecci�n (si exist�a). Normalmente, las pulsaciones de los botones de radio se manejan utilizando un oyente de action.
Abajo est� el c�digo de RadioButtonDemo.java que crea los botones de radio en el ejemplo anterior y reacci�na ante las pulsaciones.
//In initialization code:
// Create the radio buttons.
JRadioButton birdButton = new JRadioButton(birdString);
birdButton.setMnemonic('b');
birdButton.setActionCommand(birdString);
birdButton.setSelected(true);
JRadioButton catButton = new JRadioButton(catString);
catButton.setMnemonic('c');
catButton.setActionCommand(catString);
JRadioButton dogButton = new JRadioButton(dogString);
dogButton.setMnemonic('d');
dogButton.setActionCommand(dogString);
JRadioButton rabbitButton = new JRadioButton(rabbitString);
rabbitButton.setMnemonic('r');
rabbitButton.setActionCommand(rabbitString);
JRadioButton teddyButton = new JRadioButton(teddyString);
teddyButton.setMnemonic('t');
teddyButton.setActionCommand(teddyString);
// Group the radio buttons.
ButtonGroup group = new ButtonGroup();
group.add(birdButton);
group.add(catButton);
group.add(dogButton);
group.add(rabbitButton);
group.add(teddyButton);
// Register a listener for the radio buttons.
RadioListener myListener = new RadioListener();
birdButton.addActionListener(myListener);
catButton.addActionListener(myListener);
dogButton.addActionListener(myListener);
rabbitButton.addActionListener(myListener);
teddyButton.addActionListener(myListener);
...
class RadioListener implements ActionListener ... {
public void actionPerformed(ActionEvent e) {
picture.setIcon(new ImageIcon("images/"
+ e.getActionCommand()
+ ".gif"));
}
}
Para cada grupo de botones de radio, se necesita crear un ejemplar de ButtonGroup y a�adirle cada uno de los botones de radio. El ButtonGroup tiene cuidado de desactivar la selecci�n anterior cuando el usuario selecciona otro bot�n del grupo.
Generalmente se deber�a inicializar un grupo de botones de radio para que uno de ellos est� seleccionado. Sin embargo, el API no fuerza esta regla -- un grupo de botones de radio puede no tener selecci�n inicial. Una vez que el usuario hace una selecci�n, no existe forma para desactivar todos los botones de nuevo.
�El API Radio Button
Puedes ver El API Button para informai�n sobre el API de AbstractButton del que descienden JRadioButton y JRadioButtonMenuItem. Los m�todos de AbstractButton que m�s se utilizan son setMnemonic, addItemListener, setSelected, y isSelected. Las piezas m�s utilizadas del API de Radio Button se dividen en dos grupos.
�M�todos y Constructores m�s utilizados de ButtonGroups
| M�todo | Prop�sito |
|---|---|
| ButtonGroup() | Crea un ejemplar de ButtonGroup. |
| void add(AbstractButton)
void remove(AbstractButton) |
A�ade un bot�n a un grupo, o elimina un bot�n de un grupo. |
�Constructores de RadioButton
| Constructor | Prop�sito |
|---|---|
| JRadioButton(String)
JRadioButton(String, boolean) JRadioButton(Icon) JRadioButton(Icon, boolean) JRadioButton(String, Icon) JRadioButton(String, Icon, boolean) JRadioButton() |
Crea un ejemplar de JRadioButton. El argumento string especifica el texto, si existe, que debe mostrar el bot�n de radio. Similarmente, el argumento, Icon especifica la imagen que debe usar en vez la imagen por defecto de un bot�n de radio para el aspecto y comportamiento. Si se especifica true en el argumento booleano, inicializa el bot�n de radio como seleccionado, sujeto a la aprovaci�n del objeto ButtonGroup. Si el argumento booleano esta ausente o es false, el bot�n de radio est� inicialmente deseleccionado. |
| JRadioButtonMenuItem(String)
JRadioButtonMenuItem(Icon) JRadioButtonMenuItem(String, Icon) JRadioButtonMenuItem() |
Crea un ejemplar de JRadioButtonMenuItem. Los argumentos se interpretan de la misma forma que los de los constructores de JRadioButton. |