Foros del Web » Programación para mayores de 30 ;) » Java »

jtable

Estas en el tema de jtable en el foro de Java en Foros del Web. rengo este codigo le he creado un metodo llamado datasource a un j table, y funciona casi de maravilla.. cuando llamo al metodo desde un ...
  #1 (permalink)  
Antiguo 20/05/2011, 17:44
 
Fecha de Ingreso: abril-2011
Ubicación: lima
Mensajes: 134
Antigüedad: 13 años
Puntos: 3
jtable

rengo este codigo le he creado un metodo llamado datasource a un j table, y funciona casi de maravilla..
cuando llamo al metodo desde un boton me llena los datos correctamente que traigo de una base dedatos, el problema es cuando vuelvo a hacer click en el boton, me agrega nuevas filas y nuevas columnas a las que ya tengo,

la pregunta es como hago para que no me agregue esas filas y columnas al hacer click nuevamente en el boton al llamar al metodo. gracias de natemano

public void DataSource(ResultSet rs)
{
private ResultSetMetaData metadata=null;
private DefaultTableModel dtm=new DefaultTableModel();


setModel(dtm);
try {
metadata=rs.getMetaData();

for (int i = 1; i <=metadata.getColumnCount(); i++) {

dtm.addColumn(metadata.getColumnLabel(i));
}

while (rs.next())
{
Object[] filas=new Object[metadata.getColumnCount()];
for (int i = 0; i < metadata.getColumnCount(); i++) {
filas[i]=rs.getObject(i+1);
}
dtm.addRow(filas);
}



} catch (SQLException ex) {
JOptionPane.showMessageDialog(null,"Hubo un error"+ex.getMessage(),"Error",JOptionPane.ERROR);
}

}
  #2 (permalink)  
Antiguo 21/05/2011, 10:52
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: jtable

Si te fijas bien en tu codigo, simplemente vas agregando las filas en la tabla.
Deberias guardar el ResultSet en una variable y luego usar setDataVector para reemplazar la variable interna del DefaultTableModel, dataVector.

No es la mejor manera, pero es una solución a tu problema. Yo mejor implementaria AbstractTableModel y reemplazaria el metodo getValueAt(int x, int y) para que tome el valor directamente de DataSource

Etiquetas: jtable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:13.