jueves, 9 de octubre de 2008

Uso de JTable II - 2. Introducir contenido al JTable

2. INTRODUCIR CONTENIDO AL JTABLE.

     Como había mencionado antes, JTable emplea un objeto llamado DefaultTableModel que en realidad este es el que guarda el contenido para luego colocarlo en el JTable. Cada vez que modifiquemos ese objeto automáticamente se refrescara el JTable. Básicamente, para agregar datos a una tabla hay que crear un vector del tipo String cuyo tamaño sea menor o igual a la cantidad de columnas que tenga nuestra tabla, luego se llena ese vector con los datos que deseamos mostrar en la tabla (teniendo en cuenta el orden en que deben aparecer).

    Si tenemos una tabla de 5 columnas, el tamaño del vector necesariamente debe ser menor o igual 5. Si creamos un vector de 3 elementos y le asignamos valores, cuando agreguemos la fila al JTable, esta tendrá las 3 primeras columnas con datos y las restantes en blanco, esto es útil cuando tenemos columnas con tipos de datos numéricos, booleanos o los que queremos dejar en blanco para rellenar luego (como en el detalle de una factura por ejemplo, donde dejamos libre una columna para rellenar con la cantidad del producto que se esta facturando).

    Con el siguiente ejemplo muestro como es que se hace esto. Como ya mencione, utilizo Netbeans para desarrollar el ejemplo así que asumo que el IDE crea las declaraciones para crear el objeto JTable.

    El ejemplo completo consiste en una interfase en la que escribimos el DNI, apellido y nombre de una persona y luego la agregamos al JTable.

    El ejemplo completo se puede descargar de aquí

     

    A continuación voy mostrar e intentar explicar la parte que nos interesa, la de cómo agregar datos al JTable.

     

    El sistema corriendo se ve de la siguiente manera:

    El código necesario para poder cargar datos al JTable es el siguiente

     

    private void agregarDatos()

        {

            // obtengo el modelo de la tabla (El TableModel)

            DefaultTableModel modelo = (DefaultTableModel)this.jTableDatos.getModel();

            // defino el vector que contendra los datos a cargar en la tabla

            String datos[] = new String[3];// como la tabla contiene 3 columnas, le asigno 3 como tamaño al vector

            // ahora cargo el vector con los datos que cargo el usuario.

            datos[0] = this.jTextDni.getText().trim();// primero el DNI, el trim() es para que no se cargue el espacio en blanco

            datos[1] = this.jTextApellido.getText().trim();// ahora el apellido.

            datos[2] = this.jTextNombre.getText().trim(); // por ultimo el nombre.

            //ahora agrego los datos al TableModel

            modelo.addRow(datos);

            // y listo, los datos aparecen en la tabla

        }

     

    Cada vez que se presione el botón “Agregar”, el sistema toma los datos cargados en los JTextField y los agrega a la tabla

    No hay comentarios: