Ejercicio: Realizar una pequeña aplicación que nos permite rellenar una tabla con datos almacenados en una lista.
Creando clase “Persona”.
La clase “Persona” nos servirá de base para crear la lista y poder acceder a sus datos de forma sencilla. La clase cuenta con variables de clase privadas, un método constructor y los Setters & Getters para tener acceso a los datos. A esta aplicación solo servirán los Getters para obtener los datos.
Código Java
public class Persona {
private int id;
private String nombreApellido;
private String dir;
private String telef;
public Persona(int id, String nombreApellido, String dir, String telef) {
this.id = id;
this.nombreApellido = nombreApellido;
this.dir = dir;
this.telef = telef;
}
public String getDir() {
return dir;
}
public void setDir(String dir) {
this.dir = dir;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNombreApellido() {
return nombreApellido;
}
public void setNombreApellido(String nombreApellido) {
this.nombreApellido = nombreApellido;
}
public String getTelef() {
return telef;
}
public void setTelef(String telef) {
this.telef = telef;
}
}
Lo siguiente es crear un formulario utilizando un JFrame.
En el diseño vemos la descripción en rojo del nombre de variables que le asignamos a cada objeto, es importante para entender mejor el funcionamiento de los métodos.
Diseño del formulario utilizando JFrame.
Como elementos utilizamos “Botón”, y “Tabla”.
Se puede cambiar el “Nombre de variable” de cada objeto haciendo clic derecho y “Cambiar nombre de variable…”. Se puede usar la que se ajuste a los métodos creados.
Observación: Tomar en cuenta que hay que utilizar las importaciones “import”, básico para utilizar ciertos métodos y objetos. El “setLocationRelativeTo(null)” sirve para centrar el formulario. Los métodos llamados en el constructor de la clase se inician al ejecutar el formulario. Si la Clase “Persona” en este caso está en el mismo paquete que la aplicación, no es necesaria realizar la importación.
Creamos los métodos siguientes en el apartado “Fuente”. Estos métodos utilizan conversiones de tipos de datos, controles de excepciones y demás para controlar lo mejor posible el resultado. Se insertan algunos comentarios para tratar de explicar el funcionamiento de cada método.
Código Java
public void tableModel(){
this.jTable1.getColumnModel().getColumn(0).setPreferredWidth(10);
this.jTable1.getColumnModel().getColumn(1).setPreferredWidth(150);
this.jTable1.getColumnModel().getColumn(2).setPreferredWidth(150);
this.jTable1.getColumnModel().getColumn(3).setPreferredWidth(100);
model = (DefaultTableModel)this.jTable1.getModel();
model.setNumRows(0);
}
public void cargarPersona(){
lista = new ArrayList();
lista.clear();
for (int i = 0; i < 10; i++) {
lista.add(new Persona((i+1), "Persona " +(i+1), "Dirección " +(i+1), "Teléfono " +(i+1)));
}
}
public void cargarTabla(){
model.setNumRows(0);
cargarPersona();
for (Iterator it = lista.iterator(); it.hasNext();) {
Persona p = (Persona) it.next();
model.addRow(new Object[]{
p.getId(),p.getNombreApellido(),p.getDir(),p.getTelef()
});
}
}
public void limpiarTabla(){
model.setNumRows(0);
}
Utilizamos el evento “ActionPerformed” para llamar los métodos desde los botones. Para utilizar un “Evento” hacemos clic derecho sobre el objeto y seleccionamos “Eventos” de la lista utilizamos la que podamos aplicar al objeto.
Código Java
private void cargarActionPerformed(java.awt.event.ActionEvent evt) {
cargarTabla();
}
private void limpiarActionPerformed(java.awt.event.ActionEvent evt) {
limpiarTabla();
}
En la imagen, el formulario en ejecución.
Son dos archivos más la clase persona, copiar los tres dentro de la carpeta de tu proyecto, tomar en cuenta que hay que cambia la línea de código siguiente: (package com.java.swing;
) que indica el paquete de origen por el paquete en el que se ubicarán estos archivos.