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

[SOLUCIONADO] Actualizar un JTable en tiempo de ejecucion

Estas en el tema de Actualizar un JTable en tiempo de ejecucion en el foro de Java en Foros del Web. Bueno dias a todos, les comento mi situacion, tengo una app con un jtable el cual tiene una lista de clientes que traigo desde un ...
  #1 (permalink)  
Antiguo 04/10/2013, 07:15
 
Fecha de Ingreso: octubre-2013
Ubicación: Mendoza
Mensajes: 10
Antigüedad: 11 años, 1 mes
Puntos: 0
Exclamación Actualizar un JTable en tiempo de ejecucion

Bueno dias a todos, les comento mi situacion, tengo una app con un jtable el cual tiene una lista de clientes que traigo desde un ResultSet, ademas tengo un campo de busqueda por apellidos y nombre, lo que quiero hacer es que a medida que va escribiendo el apellido vaya filtrando y actualizandome el JTable, de igual forma cuando se activa la ventana quiero que se cargue con la totalidad de los clientes.
El inconveniente esta en que logue hacer que ejecute todo cuando busco y cuando se activa la ventana(a continuacion detallo los eventos donde ejecuta). El problema es que no me actualiza el jtable. En el unico momento en que se carga el jtable es cuando llamo el metodo(funcion que carga el jtable) desde el "void main", para todo lo demas que probe, nada. A continuacion pongo el codigo del metodo y desde donde lo llamo:

----------Metodo que carga el jtable----------------------------------

public void tablacli() throws SQLException{
Control.Filtro result = new Control.Filtro();
DefaultTableModel modelo = new DefaultTableModel();

this.tblclientes.setModel(modelo);

int vcantcol, vcantobj = 0, vcantfila = 0;

rs = result.tablacli("", txtnombre.getText(), txtapellido.getText());
ResultSetMetaData rsMd = (ResultSetMetaData) rs.getMetaData();

// Limpio el jtable
vcantfila = modelo.getRowCount();
for (int i = 0;vcantfila>i; i++) {
modelo.removeRow(i);
modelo.fireTableRowsDeleted(i, i);
}

//Cargo los encabezados de las columnas
vcantcol = rsMd.getColumnCount();
for (int i = 1; i <= vcantcol; i++) {
modelo.addColumn(rsMd.getColumnLabel(i));
}
//Creando las filas para el JTable
while (rs.next()) {
vcantobj = vcantobj + 1;
Object[] fila = new Object[vcantcol];
for (int i = 0; i < vcantcol; i++) {
fila[i]=rs.getObject(i+1);
}//fin for
modelo.addRow(fila);
modelo.fireTableRowsInserted(0, vcantcol);
} // fin while

if (vcantobj < 1){
logger.info("No hay clientes que coincidan con la busqueda");
}//End if vcantobj < 1
rs.close();
logger.info("Cantidad de filas en la tabla " + modelo.getRowCount());
}// fin tablacli

-------------------------------------------------------------------------------------------

---------------------------- Evento donde llamo al metodo de arriba(ejecuta todo, pero no actualiza el jtable)---------------------------------

addWindowListener(new WindowAdapter() {
@Override
public void windowActivated(WindowEvent arg0) {
Vista.Clientes cli = new Vista.Clientes();
try {
cli.tablacli();
} catch (SQLException e) {
e.printStackTrace();
logger.error("Error Al cargar la tabla Clientes! -- Funcion tablacli");
}
}

----------------------------------------------------------------------------------------------------


----------------- Evento desde donde tambien lo llamo(ejecuta todo, trae resultados el ResultSet, pero no carga el jtable tampoco)-------------------------------------


addWindowListener(new WindowAdapter() {
@Override
public void windowActivated(WindowEvent arg0) {
// Aca deberia ir la llamada de las funciones de completar las tablas tambien
Vista.Clientes cli = new Vista.Clientes();
try {
cli.tablacli();
} catch (SQLException e) {
e.printStackTrace();
logger.error("Error Al cargar la tabla Clientes! -- Funcion tablacli");
}
}

------------------------------------------------------------------------------------------

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:50.