style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Eliminar de un DefaultTableModel los valores de un getMetaData()

que tal amigos pues acudo a ustedes para ver si me pueden orientar con este tema.
Resulta que mando a llamar una funcion de postgres que me devuelve un record a grandes rasgos es mas o menos asi

declare
r escuela.vista_insertaempleado%rowtype;
 begin 
    FOR r in select curp_emp,nom,appt,apmt,puesto from  escuela.vista_insertaempleado where puesto=$1
        LOOP
                RETURN NEXT r; -- Regresa el registro actual de la clausula SELECT
    END LOOP;
    RETURN;

lo que me regresa esta función lo almaceno en un resulset que lo nombro rs, de ese resultset extraigo el nombre de las columnas de esta manera:
ResultSetMetaData rsMd=rs.getMetaData(); y después agrego los datos al defaulttablemodel así

  modeloTabla.addColumn(rsMd.getColumnLabel(i));
  modeloTabla.addRow(fila);

Todo esto lo controla un checkbox cuando lo presiono muestra los datos , el problema viene que si lo vuelvo a presionar el getmetadata() se adjunta a lo que ya estaba , es decir si la primera vez me regreso 4 columnas para la segunda me pinta 8 la tercera 12 y asi. Entonces alguna idea de como hacer que cada vez que presione el checkbox el default se actualize a como si fuera la priemera vez

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de paranoid_android

Quitar DefaulTableModel

Mi sugerencia: Necesitarías quitar el defaulttableModel e implementar un TableModel personalizado para esa tabla. En este enalce esta la documentación si sigues teniendo duda buscamos otro ejemplo ;)
http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#data
Saludos.

Imagen de neko069

Puedes crear un TableModel

Puedes crear un TableModel cada que generes el ResultSet y agregarlo a la tabla.

Imagen de Nopalin

Eliminar

Pues si verificas bien las llamadas al table model que estas haciendo, dicen add, la primera vez funciona como esperas pues esta vacía, pero apartir dela segunda ya no. Entonces lo que debes hacer es limpiar el table model antes de agregarla información, o checar si el table model ya tiene columnas ya no las agregue de nuevo.

Imagen de puzzlemaniaco

gracias

Hey por eso siempre recurro a este foro , gracias por la sugerencia no era necesario un table model, como el compañero Nopalin basto con un

        if(modeloTabla.getColumnCount()<6) // 6 por que es el numero de columnas que regresa mi función
                        {
                                for (int i = 1; i < cantidadColumnas; i++)
                                 {
                                          modeloTabla.addColumn(rsMd.getColumnLabel(i));
                                 }
                        }

Gracias a los 3

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">