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

Filtrar Consulta en jTable basado en ResultSet

Estas en el tema de Filtrar Consulta en jTable basado en ResultSet en el foro de Java en Foros del Web. Saludos amigos, quiero hacerles una consulta para ver que me sugieren. Estoy haciendo una ventana de consulta. Un JTable y JTextField. De manera que al ...
  #1 (permalink)  
Antiguo 21/02/2008, 13:51
 
Fecha de Ingreso: enero-2008
Mensajes: 15
Antigüedad: 16 años, 3 meses
Puntos: 0
Sonrisa Filtrar Consulta en jTable basado en ResultSet

Saludos amigos, quiero hacerles una consulta para ver que me sugieren. Estoy haciendo una ventana de consulta. Un JTable y JTextField. De manera que al ir escribiendo en el JTextField, se deberia ir filtrando la informacion consultada, actualizando el JTable en base a un ResultSet. Cuando hago la prueba con una tabla de 12 registros funciona a la perfeccion, el detalle es que cuando la prueba con una tabla de 40 mil registros, se pone lentisimo. Me gustaria tener su recomendaciones sobre lo que podria hacer al respecto ... Es correcto lo que estoy haciendo ? Como podria mejorarlo ? .. Agradezco mucho sus comentarios. Que utilizo es el siguiente:

// *** JDialgo JBuscar ***



public class JBuscar extends javax.swing.JDialog implements TableModelListener {

private Connection conexion;
private ResultSet consulta;
private ResultSetTableModel tableModel;

// *** Constructor ***

public JBuscar() {
Class.forName("com.ibm.as400.access.AS400JDBCDrive r");
conexion=DriverManager.getConnection(url,usuarios, clave);
Statement sentencia=CONEXION.createStatement(ResultSet.TYPE_ SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE, ResultSet.HOLD_CURSORS_OVER_COMMIT);
consulta=sentencia.executeQuery("SELECT CODIGOPAIS, DESCRIPCIONPAIS FROM PAIS");
tableModel = new ResultSetTableModel(consulta);
initComponents();
}

// *** initComponents ***

private void initComponents() {
...

jTextField1 = new javax.swing.JTextField();
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new JTable(tableModel);

...
}


// *** Evento CaretUpdate del jTextField ***

private void jTextField1CaretUpdate(javax.swing.event.CaretEven t evt) {
if (!this.jTextField1.getText().trim().equals("")) {
consulta = FrmPrincipal.getConexionPrincipal().Consulta("SELE CT CODIGOPAIS, DESCRIPCIONPAIS FROM PAIS WHERE CODIGOPAIS + " LIKE '%" + this.jTextField1.getText().trim().toUpperCase() + "%'");
} else {
consulta = FrmPrincipal.getConexionPrincipal().Consulta("SELE CT CODIGOPAIS, DESCRIPCIONPAIS FROM PAIS");
}
tableModel = new ResultSetTableModel(consulta);
this.jTable1.setModel(tableModel);

}

}

//**************************
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 00:51.