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

ayuda con ResultSet en un JTable

Estas en el tema de ayuda con ResultSet en un JTable en el foro de Java en Foros del Web. Hola a todos ^^ soy nueva en el foro (mas k nada porque nunca habia tenido dudas con la programacion, hasta ahora). Mi problema es ...
  #1 (permalink)  
Antiguo 07/12/2010, 22:23
 
Fecha de Ingreso: diciembre-2010
Mensajes: 10
Antigüedad: 13 años, 4 meses
Puntos: 0
Pregunta ayuda con ResultSet en un JTable

Hola a todos ^^ soy nueva en el foro (mas k nada porque nunca habia tenido dudas con la programacion, hasta ahora). Mi problema es el siguiente

Tengo un programa echo con las opciones del entrono grafico de netbeans, y lo que necesito es que al pulsar en un boton se me cargen todos los datos que tengo en la BD de clientes en el JTable. El codigo es el siguiente:

Código PHP:
void leerbd(String consultathrows ClassNotFoundExceptionSQLException{
        
BuscarCliente bc=new BuscarCliente();
        
ResultSet rs null;
        
String codigo null;
        
Connection cn;
        
Statement st;
        Class.
forName("sun.jdbc.odbc.JdbcOdbcDriver");
        
cn DriverManager.getConnection("jdbc:odbc:tienda");
        
st cn.createStatement();
        
rs=st.executeQuery(consulta);
       
        
ResultSetMetaData metaDatos rs.getMetaData();
       
        
//RELLENAR COLLUMNAS
        // Se obtiene el número de columnas.
        
int numeroColumnas metaDatos.getColumnCount();
        
DefaultTableModel modelo = new DefaultTableModel();
        
// Se crea un array de etiquetas para rellenar
        
Object[] etiquetas = new Object[numeroColumnas];
        
// Se obtiene cada una de las etiquetas para cada columna
        
for (int i 0numeroColumnasi++){
            
// Nuevamente, para ResultSetMetaData la primera columna es la 1.
            
etiquetas[i] = metaDatos.getColumnLabel(1);
            
System.out.println(etiquetas[i]);
        }
        
modelo.setColumnIdentifiers(etiquetas);

       
        
//RELLENAR FILAS
        // Bucle para cada resultado en la consulta
        
while (rs.next()){
   
// Se crea un array que será una de las filas de la tabla.
   
Object [] fila = new Object[numeroColumnas];

   
// Se rellena cada posición del array con una de las columnas de la tabla en base de datos.
   
for (int i=0;i<numeroColumnas;i++){
      
fila[i] = rs.getObject(i+1); // El primer indice en rs es el 1, no el cero, por eso se suma 1.
      
System.out.println(fila[i]);
   }
   
// Se añade al modelo la fila completa.
   
modelo.addRow(fila);

}
rs.close();
        
bc.tablaclientes.setModel(modelo);

    } 

Cuando ejecuto este codigo, hago varios prints para ver si esta cogiendo bien las etiketas de las columnas y los datos que tiene que insertar en las filas, y el resultado es este:

run:
id_Cliente
nombre
apellidos
dni
telefono
1
isabel
martinez fulleda
15418669K
600894221
2
ana
martinez
435435435K
586094586
BUILD SUCCESSFUL (total time: 12 seconds)


por lo tanto la consulta está bien echa, lo que no entiendo es porque no me pinta los datos en la tabla...


La consulta que le paso es esta:
consulta = "SELECT id_Cliente, nombre, apellidos, dni, telefono FROM CLIENTE;";


Si me pueden ayudar lo agradeceria mucho ya que tengo que entregar el programa el jueves en clase y si no consigo hacer esto, no puedo seguir porque toda mi aplicacion funciona con tablas.

Gracias de antemano y un saludo ; )
  #2 (permalink)  
Antiguo 08/12/2010, 07:59
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: ayuda con ResultSet en un JTable

No veo ningún fallo. ¿se ven al menos las columnas? ¿Quizás no sea tablaClientes el JTable que está visible?

Se buena.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 27/06/2011, 15:47
 
Fecha de Ingreso: junio-2011
Mensajes: 1
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: ayuda con ResultSet en un JTable

Creo que el problema esta en que el jTable debes rellenarlo dentro del thread de swing, con el metodo invokelater, como siempre que se modifique el gui, por que si no puede que nunca se produzcan los cambios.

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 15:58.