sábado, 28 de junio de 2014

JCheckBox, JComboBox y JButton en Java

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

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *