39. Casillas de verificacion y Botones de radio

En este tema vamos a tratar los controles referentes a las casillas de verificacion y los botones de radio. En primer lugar, veremos las casillas de verificacion.

 

Control JCheckBox

 

Estas casillas son las tipicas donde podemos seleccionar varias opciones. Nosotros vamos a hacer un ejercicio sencillo en el cual simplemente tendremos dos opciones mediante dos casillas de verificacion, estas casillas seran las siguentes:

 

[] Azul

[] Verde

 

La casilla que marcaremos saldra reflejada en un JTextField. Mediante el metodo "isSelected()" le indicaremos el estado en que se encuentra la casilla de verificacion.

 

import javax.swing.*;
import java.awt.event.*;
 
public class MiVentana extends JFrame implements ActionListener{
 
    JCheckBox cbSeleccionAzul, cbSeleccionVerde;
    JButton btnConfirmar;
    JTextField cmpSeleccion;
 
    public MiVentana(){
        this("Casillas de verificacion",10,10,250,200);
    }
 
    public MiVentana(String titulo, int x, int y, int w, int h){
        super(titulo);
        this.getContentPane().setLayout(null);
        this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
        this.setBounds(x,y,w,h);
        this.setVisible(true);
 
        cbSeleccionAzul = new JCheckBox("Azul");
            cbSeleccionAzul.setBounds(10,20,100,20);
            this.getContentPane().add(cbSeleccionAzul);
 
        cbSeleccionVerde = new JCheckBox("Verde");
            cbSeleccionVerde.setBounds(10,50,100,20);
            this.getContentPane().add(cbSeleccionVerde);
 
        cmpSeleccion = new JTextField();
            cmpSeleccion.setBounds(10,80,150,20);
            this.getContentPane().add(cmpSeleccion);
 
        btnConfirmar = new JButton("Confirmar");
            btnConfirmar.setBounds(120,130,100,20);
            this.getContentPane().add(btnConfirmar);
 
            btnConfirmar.addActionListener(this);
 
        paintComponents(getGraphics());
    }
 
    public void actionPerformed(ActionEvent event){
        if(event.getSource()==btnConfirmar){
            if(cbSeleccionAzul.isSelected()){
                cmpSeleccion.setText("Seleccionado Azul");
            }
            if(cbSeleccionVerde.isSelected()){
                cmpSeleccion.setText("Seleccionado Verde");
            }
        }
    }
 
    public static void main(String[]args){
 
        MiVentana mv = new MiVentana();
 
    }
}
 
Tambien podemos decirle que una de las casillas quede seleccionada predeterminada con el metodo "setSelected()". Por ejemplo, si queremos que la casilla de verificacion verde quede seleccionada cuando ejecutamos la aplicacion, dentro del constructor quedara de esta forma:
 
cbSeleccionVerde.setSelected();
 
 
A continuacion, veremos los botones de radio, que son un tanto parecido a las casillas de verificacion, pero en este caso los botones de radio los agruparemos en un grupo con la clase ButtonGroup. Quiere decir esto, que cuando un boton este seleccionado, el resto se deseleccionara, para asi obtener un solo boton seleccionado.
 
Control JRadioButton
 
Vamos a crear otra aplicacion donde veremos el funcionamiento de los botones de radio. Crearemos tres botones de radio que nos indicaran lo siguiente:
 
o Azul
o Verde
o Amarillo
 
Cuando seleccionemos uno de ellos, los demas se deseleccionaran, y cuando pulsemos el boton confirmar, en el campo de texto aparecera la seleccion que hemos hecho.
Aqui el codigo:
 
import javax.swing.*;
import java.awt.event.*;
 
public class MiVentana extends JFrame implements ActionListener{
 
    JTextField cmpSeleccion;
    JButton btnConfirmar;
    JRadioButton rbAzul, rbVerde, rbAmarillo;
    ButtonGroup grupo;
 
    public MiVentana(){
        this("Casillas de verificacion",10,10,250,200);
    }
 
    public MiVentana(String titulo, int x, int y, int w, int h){
        super(titulo);
        this.getContentPane().setLayout(null);
        this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
        this.setBounds(x,y,w,h);
        this.setVisible(true);
 
        rbAzul = new JRadioButton("Azul");
            rbAzul.setBounds(10,10,80,20);
            this.getContentPane().add(rbAzul);
        rbVerde = new JRadioButton("Verde");
            rbVerde.setBounds(10,30,80,20);
            this.getContentPane().add(rbVerde);
        rbAmarillo = new JRadioButton("Amarillo");
            rbAmarillo.setBounds(10,50,80,20);
            this.getContentPane().add(rbAmarillo);
        grupo = new ButtonGroup();
            grupo.add(rbAzul);
            grupo.add(rbVerde);
            grupo.add(rbAmarillo);
 
        cmpSeleccion = new JTextField();
            cmpSeleccion.setBounds(10,80,150,20);
            this.getContentPane().add(cmpSeleccion);
        btnConfirmar = new JButton("Confirmar");
            btnConfirmar.setBounds(130,130,100,20);
            this.getContentPane().add(btnConfirmar);
 
            btnConfirmar.addActionListener(this);
 
        paintComponents(getGraphics());
    }
 
    public void actionPerformed(ActionEvent event){
        if(rbAzul.isSelected()){
            cmpSeleccion.setText("Radio color Azul");
        }
        if(rbVerde.isSelected()){
            cmpSeleccion.setText("Radio color Verde");
        }
        if(rbAmarillo.isSelected()){
            cmpSeleccion.setText("Radio color Amarillo");
        }
    }
 
    public static void main(String[]args){
 
        MiVentana mv = new MiVentana();
 
    }
}

 

Fijate como los tres botones de verificacion se encuentran dentro del grupo que hemos creado. Si no fuese asi, los botones serian totalmente independientes.

Contacto

ProgramandoJava cabillo@hotmail.es