Los botones de opción RadioButton se utilizan para seleccionar solo un elemento de un conjunto de elementos. La diferencia principal de un CheckBox y un RadioButton radica principalmente en ésta característica, ya que un conjunto de RadioButton solo puedes seleccionar un elemento, mientras que, en un conjunto de CheckBox puedes seleccionar uno, varios o todos los elementos.
Otra característica importante es que el RadioButton se identifica generalmente como listas con círculos como podrás ver a continuación. Para agregarlos a nuestro proyecto de ejemplo realizar los siguientes pasos:
1. Realiza un nuevo proyecto.
2. En la ventana principal debes añadir lo siguiente:
a. Un botón “Aceptar” llamado btnAceptar.
b. Una etiqueta con borde llamada etiResultado.
3. Añade un panel. Un panel es una zona rectangular que puede contener elementos (botones, etiquetas, etc) La forma de poner un panel es a través del objeto JPanel.
Seleccionar JPanel de la paleta de Swing |
a. Selecciona el panel que has añadido.
b. Activa la propiedad Border (botón con tres puntos)
c. Busca el tipo de borde llamado TitledBorder (borde con título) y pon el título colores.
Agregar propiedades al JPanel |
Ventana con JPanel, botón y etiqueta |
JRadioButton en la paleta Swing |
8. Debe cambiar el nombre de cada uno de ellos. Se llamarán: optRojo, optVerde, optAzul.
9. La ventana tendrá el siguiente aspecto cuando termine:
Ventana con JPanel, 3 RadioButton, botón y etiqueta |
10. Si ejecuta el programa, observará que pueden seleccionarse varios colores a la vez. Esto no es interesante, ya que los botones de opción se usan para activar solo una opción entre varias.
11. Hay que hacer que solo un botón de opción pueda estar seleccionado a la vez. Para ello, debe añadir un nuevo objeto. Realice los siguientes pasos:
a. Añada un objeto del tipo ButtonGroup al formulario. ¡Atención! Este objeto es invisible, y no se verá en el formulario, sin embargo, lo podréis ver en el Inspector, en la parte de “Otros Componentes”:
ButtonGroup |
c. Ahora, hay que conseguir que los tres botones pertenezcan al mismo grupo. Es decir, que pertenezcan al grupo grupoColores.
d. Selecciona el botón de opción optRojo y cambia su propiedad buttonGroup, indicando que pertenece al grupo colores (observa la imagen):
e. Haz lo mismo con los botones optVerde y optAzul.
12. Acabas de asociar los tres botones de opción a un mismo grupo. Esto produce que solo una de las tres opciones pueda estar activada. Pruébelo ejecutando el programa.
13. Ahora interesa que la opción “Rojo” salga activada desde el principio. Una forma de hacer esto es programando en el “Constructor” lo siguiente:
optRojo.setSelected(true);
El método setSelected hace que se pueda activar o desactivar un botón de opción.
Prueba el programa. Observa como la opción Rojo está activada inicialmente.
14. El programa no está terminado aún. Interesa que cuando el usuario pulse el botón Aceptar, en la etiqueta aparezca el color elegido. Para ello, en el actionPerformed del botón Aceptar programe lo siguiente:
String mensaje="Color elegido: ";
if (optRojo.isSelected()) {
mensaje=mensaje+"Rojo";
} else if (optVerde.isSelected()) {
mensaje=mensaje+"Verde";
} else if (optAzul.isSelected()) {
mensaje=mensaje+"Azul";
}
etiResultado.setText(mensaje);
15. Observa el código. En él se hace lo siguiente:
a. Se crea una variable de cadena llamada mensaje.
b. En esa variable se introduce el texto “Color elegido: “
c. Luego se comprueba que opción está seleccionada, usando el método isSelected de los botones de opción. Este método te dice si un botón está seleccionado o no.
d. Según la opción que esté seleccionada, se añade un texto u otro a la cadena mensaje.
e. Finalmente se muestra la cadena mensaje en la etiqueta etiResultado.
16. Ejecute el programa. Seleccione por ejemplo la Verde. Al pulsar Aceptar el resultado debe ser el siguiente:
CONCLUSIÓN
Los botones de opción, también llamados botones de radio (JRadioButton) se usan cuando quieres que el usuario pueda elegir una opción de entre varias.
Es interesante que los botones de radio aparezcan dentro de un panel JPanel. Se recomienda colocar un borde al panel.
Es totalmente necesario añadir un objeto del tipo ButtonGroup, y hacer que los botones de radio pertenezcan a dicho grupo. En caso contrario, será posible activar varios botones de opción a la vez.
y amm una pregunta como ya teniendo mi grupo de botones con un boton pueda deseleccionar todos los radio button para que me vuelva a pedir la opion?
ResponderEliminarHola Frank, supongamos que al boton que mencionas lo llames "Limpiar". Entonces tendrás que hacer lo siguiente:
Eliminar1. En el actionPerformed de tu boton "Limpiar" tendras que indicarle que el RadioButton no debe estar seleccionado con la siguiente linea de ejemplo:
optRojo.setSelected(false);
Lo cual indica que al RadioButton llamado optRojo le estas dando propiedades de seleccion (.setSelected) con valor falso (false).
Esta instruccion la debes repetir para todos los RadioButton que hayas agregado en el ButtonGroup.
En este ejemplo tambien es conveniente que al dar clic al boton "Limpiar" tambien se reinicie el contenido de la etiqueta con la siguiente instruccion:
etiResultado.setText(null);
Espero haberte ayudado, saludos.
Luis Edwin Aa disculpa que te corrija, pero para limpiar la selección de todos los RadioButton en un grupo se utiliza el comando "clearSelection();". Utilizando tu ejemplo esto queda:
EliminargrupoColores.clearSelection();
Gracias amigo me sirvio mucho tu ayuda (Y)
Eliminartiene razon victor ivan, no me funcionó utilizando el boolean
EliminarMuy bueno me sirvio
EliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarGracias por el aporte me sirvio mucho.. :D
ResponderEliminarsencillo y fácil, ^^
ResponderEliminargracias me ha servido ^^
grax bro justo lo q necesitaba :D
ResponderEliminari opcion jpanel no lo tengo ... ayudenmeee
ResponderEliminargracias me fue de gran ayuda
ResponderEliminargracias!!! peron quisiera saber como hago para limpiar mis radiobuttons
ResponderEliminarSi están en un grupo utiliza este comando:
Eliminarnombregrupo.clearSelection();
Para un solo RadioButton en especifico utiliza:
nombreRadioButton.setSelected(false);
Buenos dias..
ResponderEliminara mi no me aparece la opcion de buttongroup.. como se hace en ese caso?
Profiras dercirme para qe sirven cada unos de los controles ... ¿?
ResponderEliminargracias muy util
ResponderEliminarMuchas Gracias!! excelente aporte!!
ResponderEliminardola, como hago para tener la opción del bottongroup, en mi paleta no me aparece.
ResponderEliminartengo instalado el netbeans 7.2
Muchas gracias!
ResponderEliminarHola necesito un programa en NetBeans en un formulario..que tenga una lista.cola.pila..con sus conceptos basicos ...gracias
ResponderEliminarGracias ! Me ayudo como referencia.
ResponderEliminar
ResponderEliminarGracias ! Me ayudo como referencia. :) !!!
ola saludos ;
ResponderEliminarAlguien me podría ayudar. mi problema es que tengo varios radio button
radio button1
radio button2
radio button3
pero solo kiero k se sellecione uno a la vez que no me permita selecionar 2
Este comentario ha sido eliminado por el autor.
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarButtonGroup grupo= new ButtonGroup ();
ResponderEliminargrupo.add(radio1);
grupo.add(radio2);
grupo.add(radio3);
agrega el grupo de botonoes y ahi se añade cada radiobuton al grupo y te selecionara uno
ButtonGroup grupo= new ButtonGroup ();
ResponderEliminargrupo.add(radio1);
grupo.add(radio2);
grupo.add(radio3);
agrega el grupo de botonoes y ahi se añade cada radiobuton al grupo y te selecionara uno
ButtonGroup agrega= new ButtonGroup ();
ResponderEliminargrupo.add(radio1);
grupo.add(radio2);
grupo.add(radio3);
agrega el grupo de botonoes y ahi se añade cada radiobuton al grupo y te selecionara uno
gracias por tu aporte , me ha funcionado perfectamnte ,saludos
ResponderEliminarHola:
ResponderEliminarAlguien me podría ayudar,
Mi problema es que estoy trabajando con formularios utilizando Netbeans y tengo 4 formularios pero no se como agruparlos mediante un solo botón y que a el momento presionar el botón me guarde la información en una base de datos.
Ojala alguien me pueda ayudar se los agradecería.
Amigo, no seria mas fácil agrupar todo en un solo formulario? No le veo el caso a tener 4 y querer que todos se aaccioen con un solo botón.
Eliminary como hago para seleccionar cual de los dos botones ha seleccionado (en mi caso genero, masculino/femenino), ¿como lo translado ese valor a un arrayList que uso para mostrar en una tabla?
ResponderEliminarprivate void button_enviarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Persona p = new Persona();
p.setNombre(text_nombre.getText());
p.setEdad(text_edad.getText());
p.setCiudad((String) combo_ciudad.getSelectedItem());
p.setSexo(grupo.isSelected()); ?????????
personasList.add(p);
modelo.addRow(new Object[]{p.getNombre(), p.getEdad(), p.getCiudad(), p.getSexto()});
}
Solucionado,
ResponderEliminarif (masculino.isSelected())
p.setSexo("Masculino");
else
p.setSexo("Femenino");
Hola, tengo una duda muy similar a la tuya, quisiera saber si me podrías ayudar.
EliminarMuchas gracias desde ya.
TENGO 4 BOTONES PARA UNA ELECCIÓN DE COLORES
ResponderEliminarHAY 100 PERSONAS Y CADA UNA DE ELLA ESCOJE UN COLOR
COMO HAGO PARA QUE ME MUESTRE CUANTOS PERSONAS ELIGIERON EL VERDE CUANTAS EL AZUL CUANTAS EL ROJO Y CUANTAS EL AMARILLO Y QUE ME MUESTRE CUAL COLOR FUE EL MAS ELEGIDO ... SI ME PUEDEN AYUDAR CON ESO . SE LOS AGRADESCO
Como haria para obligar al usuario a que eliga cuando menos un radiobutton?
ResponderEliminarElija"
ResponderEliminarTengo 4 Radiobottons y cuando seleccionas una opcion se guarda en la base de datos pero cuando hago una consulta como hago para que esa opcion sea mostrada en el radiobotton???
ResponderEliminarTengo 4 Radiobottons y cuando seleccionas una opcion se guarda en la base de datos pero cuando hago una consulta como hago para que esa opcion sea mostrada en el radiobotton???
ResponderEliminarBuenas, tengo 4 raddiobuttons dentro den un ButtonsGroup, como hago para poder seleccionar 2 a la azar?, solo me permite seleccionar 1.. gracias :D
ResponderEliminargracias
ResponderEliminarHola qué tal si quiero que al seleccionar una radiobutton me pida una contraseña como le ago
ResponderEliminaralgien me puede ayudar a regresar datos de una tabla a un radio button
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarMuchisimas gracias me ayudaste mucho
ResponderEliminarHola mucho gusto tengo algo parecido pero estoy haciendo un pequeño proyecto para una materia y ando haciendo un punto de ventas y tengo creado 2 radiobutton pero se supono que solo se puede seleccionar uno y con base en eso se hace una operacionn pero quisiera saber como hacer para tomar los valores de los radiobuttons espero que me puedan ayudar.
ResponderEliminarGracias me pareció muy útil claro y directo.
ResponderEliminarme salio bien al ejecutarlo gracias, pero no si al alguien me puede ayudar con un programa de una taqueria que me de el precio y el precio del descuento por día usando (combobox, spinner, slider, text area y radiobutton por favor antes del 7 de diciembre 🙏
ResponderEliminar