Control JTable con base de datos

9
Ingeniería de Sistemas y Telemática DOCENTE: MARCO AURELIO PORRO CHULLI PALOMINO VASQUEZ, Dhalin. ZAMBRANO GOICOCHEA, Jhon Carlos. INTEGRANTES: DESARROLLO DE SOFTWARE

Transcript of Control JTable con base de datos

Page 1: Control JTable con base de datos

Ingeniería de Sistemas y Telemática

DOCENTE: MARCO AURELIO PORRO CHULLI

PALOMINO VASQUEZ, Dhalin.ZAMBRANO GOICOCHEA, Jhon

Carlos.

INTEGRANTES:

DESARROLLO DE SOFTWARE

Page 2: Control JTable con base de datos

CONTROL JTABLE CON BASE DE DATOS

JTable es un componente swing java que nos permite mostrar datos en una tabla de una base de datos, sin embargo a diferencia de otros componentes similares de otros lenguajes de programación, java no nos permite gestionar directamente los datos.

Un JTable representa una tabla de datos con sus respectivas Filas y Columnas, la información que se muestra en ella puede ser ingresada tanto por nosotros como obtenida de una base de datos.

JTable es una clase que me permite organizar una determinada información en tabla, ésta difiere de una base de datos normal porque al utilizar JTable podemos visualizar esta tabla, brindándole al usuario organización de información, oportunidades de editar y cambiar el tamaño de las columnas entre otras.

Page 3: Control JTable con base de datos

En principio se creó la clase JTable para constituir un interfaz ligado a bases de datos a través de "Java Database Connectivity" (JDBC), y así evita la complejidad que existía para el manejo de datos, dando así al programador mucha más facilidad a la hora de trabajar con este tipo de información.

JTable le da al programador muchas facilidades, pues este posee varias características que permiten hacer desde tablas con información compleja y muy estructurada hasta tablas con información sencilla y "básica".

La clase JTable controla como se presentan los datos, siendo el TableModel quien controla los datos sí mismos. Para crear una JTable habrá pues que crear un TableModel antes, normalmente. TableModel lo que hace es predeterminar ciertas características para el JTable es decir, que tú puedes poner ciertos parámetros dentro de un TableModel y así no tener que determinarlos siempre.

TableModel es un programa que guarda los datos de la tabla para sí mismo, es decir, puede tener la información de la tabla, pero estos datos son visualizados por el computador.

Page 4: Control JTable con base de datos

PROPIEDADES:

Llenar un JTable con datos de una base de datos Sql Server.

Para poder hacer esto, primero ya debes de haber importado tu librería de Sql Server conector y ya tienes tu clase de conexión, si no es así, favor de ver primero este post, haz clic aquí. 

Después insertamos un JTable, del lado derecho tenemos el Swing Controls, haz clic sobre Table y después haz clic sobre tu JFrame para que se inserte el JTable, después, en el Panel de Properties, busca la opción model y haz clic en el botón de los 3 puntos.

Después en property using, eliges la opción Custom code…

Después le damos un nombre a nuestro modelo de nuestra tabla, yo le pondré modeloTabla.

Page 5: Control JTable con base de datos

Una vez que le asignamos el modelo a nuestra tabla, vamos al código para asignarle los encabezados y ver cómo vamos a rellenar la tabla.

Primero damos de alta nuestro modelo ya que lo que hicimos anteriormente fue asignarle el modelo a la tabla pero no lo declaramos, y es lo que vamos hacer aquí.

Primero, se importan las librerías que se van a ocupar que son:

import javax.swing.table.DefaultTableModel;import java.sql.*;import java.util.logging.*;

Page 6: Control JTable con base de datos

Después como se dijo anteriormente, se declara nuestro modelo que le asignamos a nuestra tabla, se declara con DefaultTableModel, y la librería que ocupa es javax.swing.table.DefaultTableModel y además llamamos a nuestra conexión de base de datos, yo lo llamo como conexion.conexion por que la primera conexión quiere decir que es mi Package y la segunda conexión quiere decir que es mi Clase.

Bien, enseguida si te das cuenta aparece modelo Tabla, lo que estamos haciendo ahí es inicializando nuestro modelo, fíjate que como parámetros de DefaultTableModel esta null y getColumnas (), bien donde esta null, sería la parte que ocuparíamos para llenar la tabla de datos, pero aún no llegamos ahí y llamamos a getColumnas () si te das cuenta es una subClase de tipo String array donde especificamos el encabezado de cada columna.

Además observa que tenemos otra subClase que se llama setFilas(), esta ahí porque al iniciar la clase va a ejecutar todo lo que este en setFilas() que es nuestro código que llenará la tabla de información (no importa si te da error, deja esa línea ya que si esa no se llenará el JTable).

Ahora lo más importante, llenar la JTable de datos, para esto vamos a ver que tiene la subClase setFilas () que es la que llenará la JTable de información.

Page 7: Control JTable con base de datos

EJEMPLOS

Métodos para los suscriptoresPara implementar los métodos de los suscriptores necesitamos que nuestro modelo tenga una lista de suscriptores y únicamente hay que añadir o borrar suscriptores de esa lista. El código puede ser tan simple como esto:class MiModelo implements TableModel{    public void addTableModelListener (TableModelListenerl) {        suscriptores.add (l);    }    public void removeTableModelListener (TableModelListener l) {        suscriptores.remove(l);< BR >     }    private LinkedList suscriptores = new LinkedList();}

Page 8: Control JTable con base de datos

 public Object getValueAt (int fila, int columna) {        // Obtenemos la persona de la fila indicada        Persona aux = (Persona)datos.get (fila);              switch (columna) {            // Nos piden el nombre            case 0:                                                                    return aux.nombre;                break;            // Nos piden el apellido            case 1:                                                                     return aux.apellido;                break;            // Nos piden la edad.            case 2:                                                                    return new Integer (aux.edad);                break;         }         return null;    }

    private LinkedList datos = new LinkedList();}

Metodos para manejo de los datos

Para el manejode datos, sólo tenemos dos métodos. El que pone un dato enuna fila,columna y el que lo obtiene. Si seguimos con la idea de hacer unalista de personas, el código puede quedar como esto:

class MiModelo implements TableModel{    public void setValueAt (Object dato, int fila, int columna) {         // Obtenemos la persona de la fila indicada        Persona aux = (Persona)datos.get (fila);           switch (columna) {           // Nos pasan el nombre.           case 0:                                                                 aux.nombre = (String)dato;               break;           // Nos pasan el apellido.           case 1:                                                                  aux.apellido = (String)dato;               break;           // Nos pasan la edad.           case 2:                                                                  aux.edad = ((Integer)dato).intValue();               break;        }

        // Aquí hay que avisar a los sucriptores del cambio.        // Ver unpoco más abajo cómo.    }

Page 9: Control JTable con base de datos