JRadioButton
Conocido también como botón de opción o botón de radio es un tipo de widget utilizado en interfaces gráficas de usuario que permite elegir una sola opción de un conjunto predeterminado de estas.
Los botones de opción (botones de radio) se llaman así en referencia a los botones físicos que se usan en los radios para seleccionar estaciones preajustadas -
Es posible que, inicialmente, ninguno de los botones de opción en un grupo esté seleccionado. Este estado no puede restaurarse interactuando con el widget del botón de opción (pero es posible a través de otros elementos de la interfaz de usuario).
Un aspecto interesante de los botones de opción, cuando se utilizan en un formulario HTML, es que si no se marca ningún botón en un grupo, entonces no se pasa ningún par nombre-valor cuando se envía el formulario. Por ejemplo, para un grupo de botones de opción llamado Sexo, con las opciones de Masculino y Femenino, la variable Sexo no pasaría, ni siquiera con un valor en blanco.
Este es un ejemplo común de un RadioButton en donde sólo se permitirá seleccionar un elemento de la lista definida previamente por el Programador:
Bueno, ahora vamos al código, veamos que se debe hacer para crear uno de estos.
Imports Utilizados:
import javax.swing.ButtonGroup;
import javax.swing.JRadioButton;
import javax.swing.JRadioButton;
Definir un RadioButton:
JRadioButton rbtn1=new JRadioButton("txt1",true);
JRadioButton rbtn2=new JRadioButton("txt2",false);
JRadioButton rbtn3=new JRadioButton("txt3",false);
Creación del Grupo de Botones:
ButtonGroup grupo1 = new ButtonGroup();
grupo1.add(rbtn1);
grupo1.add(rbtn2);
grupo1.add(rbtn3);
grupo1.add(rbtn1);
grupo1.add(rbtn2);
grupo1.add(rbtn3);
La Clase que se utiliza se llama JRadioButton y donde la clase que nos permite crear un grupo donde "almacenaremos" nuestro botones es la ButtonGroup. Los parámetros que se pasan al momento de crearlo son el Texto que llevará y si estará seleccionado este ítem al momento de ejecutar nuestro programa.
Problema 1:
Confeccionar un programa que muestre 3 objetos de la clase JRadioButton que permitan configurar el ancho y alto del JFrame.
Programa:
Ver videoimport javax.swing.*; import javax.swing.event.*; public class Formulario extends JFrame implements ChangeListener{ private JRadioButton radio1,radio2,radio3; private ButtonGroup bg; public Formulario() { setLayout(null); bg=new ButtonGroup(); radio1=new JRadioButton("640*480"); radio1.setBounds(10,20,100,30); radio1.addChangeListener(this); add(radio1); bg.add(radio1); radio2=new JRadioButton("800*600"); radio2.setBounds(10,70,100,30); radio2.addChangeListener(this); add(radio2); bg.add(radio2); radio3=new JRadioButton("1024*768"); radio3.setBounds(10,120,100,30); radio3.addChangeListener(this); add(radio3); bg.add(radio3); } public void stateChanged(ChangeEvent e) { if (radio1.isSelected()) { setSize(640,480); } if (radio2.isSelected()) { setSize(800,600); } if (radio3.isSelected()) { setSize(1024,768); } } public static void main(String[] ar) { Formulario formulario1=new Formulario(); formulario1.setBounds(0,0,350,230); formulario1.setVisible(true); formulario1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
Importamos los dos paquetes donde están definidas las clases e interfaces para la captura de eventos:
import javax.swing.*; import javax.swing.event.*;
Heredamos de la clase JFrame e implementamos la interface ChangeListener para capturar el cambio de selección de objeto de tipo JRadioButton:
public class Formulario extends JFrame implements ChangeListener{
Definimos tres objetos de la clase JRadioButton y uno de tipo ButtonGroup:
private JRadioButton radio1,radio2,radio3; private ButtonGroup bg;
En el constructor creamos primero el objeto de la clase ButtonGroup:
bg=new ButtonGroup();
Creamos seguidamente el objeto de la clase JRadioButton, definimos su ubicación, llamamos al método addChangeListener para informar que objeto capturará el evento y finalmente añadimos el objeto JRadioButton al JFrame y al ButtonGroup:
radio1=new JRadioButton("640*480"); radio1.setBounds(10,20,100,30); radio1.addChangeListener(this); add(radio1); bg.add(radio1);
Exactamente hacemos lo mismo con los otros dos JRadioButton:
radio2=new JRadioButton("800*600"); radio2.setBounds(10,70,100,30); radio2.addChangeListener(this); add(radio2); bg.add(radio2); radio3=new JRadioButton("1024*768"); radio3.setBounds(10,120,100,30); radio3.addChangeListener(this); add(radio3); bg.add(radio3);
En el método stateChanged verificamos cual de los tres JRadioButton está seleccionado y procedemos a redimensionar el JFrame:
public void stateChanged(ChangeEvent e) { if (radio1.isSelected()) { setSize(640,480); } if (radio2.isSelected()) { setSize(800,600); } if (radio3.isSelected()) { setSize(1024,768); } }
Existen otras formas tanto de colocar el texto en un RadioButton como de configurar si este estará seleccionado por defecto, tales como:
rbtn1.setText("Texto");
rbtn1.setSelected(true);
En el caso de necesitar una validación podríamos hacerlo con un IF:
if(rbtn1.isSelected()==true)
{
System.out.print("Seleccionó opción 1");
No hay comentarios:
Publicar un comentario