Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/03/2009, 20:44
hoolligan666
 
Fecha de Ingreso: octubre-2005
Ubicación: Córdoba, Veracruz
Mensajes: 42
Antigüedad: 19 años, 1 mes
Puntos: 0
Creación de tableModel

Estoy intentando crear un tableModel a partir de información tomada de una base de datos.
Hasta ahora he podido tomar el título de las columnas, pero no encuentro cómo hacer el array de Objects[][] para llenar la tabla con los datos.
¿Hay algún método que me diga cuántas filas me ha devuelto un executeQuery?
La única forma que se me ocurre de hacerlo es con:

while (resultado.next()) linea++;

pero me parece una solución algo chapucera.

Código:
    public Probando() {
        Object datos[][]=null;
        String nombreColumnas[];

        initComponents();
        try{
            Class.forName(ControladorJDBC);
            conexion = DriverManager.getConnection(baseDatos);
            instruccion = conexion.createStatement();
            ResultSet resultados = instruccion.executeQuery("select  * from Articulos");
            ResultSetMetaData columnas = resultados.getMetaData();
            int numColumnas = columnas.getColumnCount();
            nombreColumnas = new String[numColumnas];
            for(int i=1; i<=numColumnas; i++)
                nombreColumnas[i-1] = new String(columnas.getColumnName(i));
            // Aquí debería llenar datos, que es un array que se le pasa al TableModel
            jTable1.setModel(new javax.swing.table.DefaultTableModel(datos, nombreColumnas) {
            Class[] types = new Class [] {
                java.lang.String.class, java.lang.Integer.class
            };
            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }
        });
        }
        catch(SQLException excepcionSql){
            System.out.println(excepcionSql);
        }
        catch(ClassNotFoundException claseNoEncontrada){
            System.out.println(claseNoEncontrada);
        }
    }
Es mi primera vez usando Object, así que se aceptan todo tipo de sugerencias.
De antemano gracias por su ayuda.
¡Saludos!