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. |