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