Que tal compañeros el día
de hoy vamos aprender cómo realizar JCheckBox, JComboBox y JButton además de
los eventos ActionListener e ItemListener. Para esto nos dimos a la tarea de
realizar un ejercicio en donde practicamos todo estos componentes además de los
eventos de escucha para los respectivos componentes.
Empecemos como crear un
JCheckBox, para ello tenemos que realizar lo siguiente:
Importamos el paquete que
contiene a este componente.
import
javax.swing.JComboBox;
A continuación declaramos nuestro JComboBox de la
siguiente manera.
private
JComboBox NombreDelCombo;
Después instanciamos un objeto de JComboBox de la
siguiente manera.
NombreDelCombo
= new JComboBox(Variable);
Nota:
En la parte donde dice variables, nosotros podemos crear
un arreglo de cadenas para poderlo mostrar en el JComboBox.
Algunos atributos del JComboBox son los siguientes:
A la hora de desplegar el
JComboBox a veces solo queremos mostrar una cantidad en específico y para esto
realizamos de la siguiente forma donde el número es la cantidad que se mostrara
al desplegar.
NombreDelCombo.setMaximumRowCount(4);
Nosotros podemos colocarle una fuente en específico así
como el tamaño de la letra y esto se realiza de la siguiente forma.
NombreDelCombo.setFont(new
Font("Ubuntu", Font.PLAIN, 16));
Para darle una posición dentro del JFrame utilizamos
setBounds donde esto lo vimos en el anterior post.
NombreDelCombo.setBounds(150,
100, 150, 20);
Una de las propiedades muy importantes es el escuchador
de eventos y el JComboBox lo necesita ya que al seleccionar una opción es un
evento y para saber esto necesitamos agregarlo y esto se hace de la siguiente
forma.
NombreDelCombo.addItemListener(this);
Ahora para el componente JCheckBox necesitamos de igual
forma importar el paquete necesario para tener el JCheckBox.
import
javax.swing.JCheckBox;
Ahora declaramos nuestro JCheckBox  y le colocamos un nombre.
private
JCheckBox NombreDelCheck;
Después de declarar nuestro JCheckBox lo instanciamos.
NombreDelCheck
= new JCheckBox("Le colocamos un nombre");
Ahora como el JComboBox le podemos colocar al JCheckBox
las propiedades de: setFont y setBounds
Para agregarle el escuchador de eventos al JCheckBox lo
hacemos de la siguiente forma:
NombreDelCheck.addItemListener(this);
Ahora para el último componente JButton agregamos los
paquetes necesarios que es el siguiente:
De igual forma le podemos agregar los atributos de setFont
y setBounds.
Ahora la parte esencial de un botón es el evento que
realizara a la hora de presionarlo y para aregarle el evento lo realizamos de
la siguiente forma:
    NombreBoton.addActionListener(this);
A la hora de que lo agreguemos nos marcara un error,
puede ser porque en la clase no le colocamos el implements ActionListener. Ahora
si al agregar el implements nos marca error en la clase le damos click al error
y nos mostrara 
Seleccionamos Add
unimplemented methods y después de seleccionarlo en la parte inferior de
nuestro programa se colocara el método:
public
void actionPerformed(ActionEvent evento)
Esto es para el ActionListener el mismo procedimiento se
hace con el de ItemListener.
Ahora después de explicar cada componente nuestro
ejercicio consiste en un registro de usuarios sencilla pero bastante practico
para estos componentes. 
El código es el siguiente:
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class VtnRegistro extends JFrame implements ActionListener, ItemListener{
 private JLabel lblNombre;
 private JLabel lblApPaterno;
 private JLabel lblApMaterno;
 private JLabel lblGenero;
 private JLabel lblEstado;
 
 private JTextField txtNombre;
 private JTextField txtApPaterno;
 private JTextField txtApMaterno;
 
 private JCheckBox checkFemenino;
 private JCheckBox checkMasculino;
 
 private JComboBox comboEstados;
 
 private JButton btnRegistrar;
 private JButton btnCancelar;
 
 //Declaramos un arreglo en donde colocamos los estados y mostrarlos en el JComboBox
 String Estados[]={"Aguascalientes", "Baja California", "Baja California Sur", "Campeche",
     "Coahuila", "Colima", "Chiapas", "Chihuahua", "Distrito Federal", "Durango"};
 
 String Nombre, ApPaterno, ApMaterno, Genero, Estado;
 //Constructor
 public VtnRegistro(){
  super("Registro Usuario");
  setLayout(null);
  
  lblNombre = new JLabel("Nombre:");
  lblNombre.setBounds(85, 20, 80, 20);
  //Le colocamos un tipo de fuente y tamaño a la letra
  lblNombre.setFont(new Font("Ubuntu", Font.PLAIN, 16));
  add(lblNombre);
  
  lblApPaterno = new JLabel("Apellido paterno:");
  lblApPaterno.setBounds(20, 40, 140, 20);
  //Le colocamos un tipo de fuente y tamaño a la letra
  lblApPaterno.setFont(new Font("Ubuntu", Font.PLAIN, 16));
  add(lblApPaterno);
  
  lblApMaterno = new JLabel("Apellido materno:");
  lblApMaterno.setBounds(20, 60, 140, 20);
  //Le colocamos un tipo de fuente y tamaño a la letra
  lblApMaterno.setFont(new Font("Ubuntu", Font.PLAIN, 16));
  add(lblApMaterno);
  
  lblGenero = new JLabel("Genero:");
  lblGenero.setBounds(90, 80, 80, 20);
  //Le colocamos un tipo de fuente y tamaño a la letra
  lblGenero.setFont(new Font("Ubuntu", Font.PLAIN, 16));
  add(lblGenero);
  
  lblEstado = new JLabel("Estado:");
  lblEstado.setBounds(95, 100, 80, 20);
  //Le colocamos un tipo de fuente y tamaño a la letra
  lblEstado.setFont(new Font("Ubuntu", Font.PLAIN, 16));
  add(lblEstado);
  
  txtNombre = new JTextField();
  txtNombre.setFont(new Font("Ubuntu", Font.PLAIN, 16));
  txtNombre.setBounds(150, 20, 150, 20);
  add(txtNombre);
  
  txtApPaterno = new JTextField();
  //Le colocamos un tipo de fuente y tamaño a la letra
  txtApPaterno.setFont(new Font("Ubuntu", Font.PLAIN, 16));
  txtApPaterno.setBounds(150, 40, 150, 20);
  add(txtApPaterno);
  
  txtApMaterno = new JTextField();
  //Le colocamos un tipo de fuente y tamaño a la letra
  txtApMaterno.setFont(new Font("Ubuntu", Font.PLAIN, 16));
  txtApMaterno.setBounds(150, 60, 150, 20);
  add(txtApMaterno);
  
  checkFemenino = new JCheckBox("F");
  //Le colocamos un tipo de fuente y tamaño a la letra
  checkFemenino.setFont(new Font("Ubuntu", Font.PLAIN, 16));
  checkFemenino.setBounds(160, 80, 40, 20);
  checkFemenino.addItemListener(this);//Agregamos el escucha eventos al check
  add(checkFemenino);
  
  checkMasculino = new JCheckBox("M");
  //Le colocamos un tipo de fuente y tamaño a la letra
  checkMasculino.setFont(new Font("Ubuntu", Font.PLAIN, 16));
  checkMasculino.setBounds(240, 80, 40, 20);
  checkMasculino.addItemListener(this);//Agregamos el escucha eventos al check
  add(checkMasculino);
  
  comboEstados = new JComboBox(Estados);
  comboEstados.setMaximumRowCount(4);
  comboEstados.setFont(new Font("Ubuntu", Font.PLAIN, 16));
  comboEstados.setBounds(150, 100, 150, 20);
  comboEstados.addItemListener(this);
  add(comboEstados);
  
  btnRegistrar = new JButton("Registrar");
  //Le colocamos un tipo de fuente y tamaño a la letra
  btnRegistrar.setFont(new Font("Ubuntu", Font.PLAIN, 16));
  btnRegistrar.setBounds(60, 150, 100, 20);
  btnRegistrar.addActionListener(this);
  add(btnRegistrar);
  
  btnCancelar = new JButton("Cancelar");
  //Le colocamos un tipo de fuente y tamaño a la letra
  btnCancelar.setFont(new Font("Ubuntu", Font.PLAIN, 16));
  btnCancelar.setBounds(200, 150, 100, 20);
  btnCancelar.addActionListener(this);
  add(btnCancelar);
  
  
 }
 @Override
 public void actionPerformed(ActionEvent evento) {
  /*Para nosotros identificar de donde probiene el evento utilizamos el getSource esto
   * para saber la fuente (componente de donde probiene el evento), el equals es similar
   * al ==, solo que el equals nos permite igualar objetos que en este caso son los componentes
   */
  if(evento.getSource().equals(btnRegistrar)){
   //Inicializamos las variables obteniendo los datos de los JTextField
   Nombre = txtNombre.getText();
   ApPaterno = txtApPaterno.getText();
   ApMaterno = txtApMaterno.getText();
   JOptionPane.showMessageDialog(null, "Nombre: "+Nombre+
     "\nApellido Paterno: "+ApPaterno+
     "\nApellido Materno: "+ApMaterno+
     "\nGenero: "+Genero+
     "\nEstado: "+Estado);
  }
  else if(evento.getSource().equals(btnCancelar)){
   //La accion que le dimos a cancelar fue Salir y se hace de la siguiente forma
   System.exit(EXIT_ON_CLOSE);
  }
 }
 @Override
 public void itemStateChanged(ItemEvent evento) {
  if(evento.getSource() == comboEstados){
   //Aqui realizamos un cast que es comvertir el dato seleccionado a String
   Estado = (String)comboEstados.getSelectedItem();
  }
  //Si el checkFemenino es seleccionado se le asignara "Femenino" a la variable Genero
  else if(checkFemenino.isSelected() == true){
   Genero = "Femenino";
  }
  //Si el checkMasculino es seleccionado se le asignara "Masculino" a la variable Genero
  else if(checkMasculino.isSelected() == true){
   Genero = "Masculino";
  }
 }
}
Main:
import javax.swing.JFrame;
public class MainRegistro {
 public static void main(String[] args) {
  VtnRegistro Usuario = new VtnRegistro();
  Usuario.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  Usuario.setSize(350, 300);
  Usuario.setVisible(true);
 }
}
Resultado:
Muy bien compañeros hemos llegado al final de este post
espero que les haya sido de gran utilidad a la hora de crear sus GUI y que
mejor que aprender como se hace desde 0. Si te gusto no olvides seguirnos por
nuestras redes sociales.
 



No hay comentarios.:
Publicar un comentario