Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

llenar un Object [][] con el resultado de un select para hacer un JTable de SWING

538 views
Skip to first unread message

[ZoRo]

unread,
May 17, 2003, 8:48:56 AM5/17/03
to
Hola tengo lo sigueinte para poder hacer una tabla con swing
final Object[][] data = {
{"Mary", "Campione",
"Snowboarding", new Integer(5), new Boolean(false)},
{"Alison", "Huml",
"Rowing", new Integer(3), new Boolean(true)},
{"Kathy", "Walrath",
"Chasing toddlers", new Integer(2), new Boolean(false)},
{"Mark", "Andrews",
"Speed reading", new Integer(20), new Boolean(true)},
{"Angela", "Lih",
"Teaching high school", new Integer(4), new Boolean(false)}
};

Pero lo que queiro es llenar los valores con el resultado de un select a una
tabla.
El problema es que una vez ejecurado el select no se como poner los valores
dentro del object, es decir, si tengo:
try {
String query = "Select id,dni,nombre,apellido1,apellido2,email from
alumnos";
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
int id= rs.getInt ("id");
String dni= rs.getString ("dni");
String nombre= rs.getString ("nombre");
String apellido1= rs.getString ("apellido1");
String apellido2= rs.getString ("apellido2");
String email= rs.getString ("email");
}
rs.close();
} catch (SQLException se) {
System.out.println ("Error ");
}
Con los resultados de ese select como podría llenar el Object [][] data?

me podeis ayudar?


znôrt

unread,
May 17, 2003, 9:18:38 AM5/17/03
to

Esto hace algo parecido, a ver si te sirve.

/**
* Obtiene todas las filas correspondientes a un query (ResultSet).
Se devuelve
* el conjunto de filas completo de una sóla vez.
* @param sqlExpr expresión SQL
* @return una matriz de matrices de strings con el valor de cada
columna para cada
* fila del recordset. Los valores se convierten a string con el
correspondiente
* toString() implícito. Si la consulta no genera ninguna fila,
devuelve null.
*/
static public ArrayList getRekordSet(String sqlExpr)
{
String kampos[] = null ;
ArrayList filas = new ArrayList() ;
ResultSet rs = null ;
try
{

if ( debug ) System.out.println("getRekordSet:" + sqlExpr) ;
rs = st.executeQuery (sqlExpr);
if ( rs!=null )
{
int k = rs.getMetaData().getColumnCount() ;
if ( k>0 )
{
while ( rs.next() )
{
kampos = new String[k];
for (int i=0; i<k; i++)
{
kampos[i] = rs.getString(i+1) ;
}
filas.add(kampos) ;
}
}
}
}
catch (java.lang.Exception e)
{
System.err.println(e.toString()) ;
}
if ( rs!=null ) try { rs.close() ; } catch(Exception e) {
System.out.println("rsklose!" + e.toString());} ;
return filas ;
}


saludos
znôrt

Alejandro Soler

unread,
May 17, 2003, 2:41:36 PM5/17/03
to

"[ZoRo]" <granbilba...@latinmail.com> escribió en el mensaje
news:ba5b3o$p3b4u$1...@ID-59646.news.dfncis.de...

Bajandote el JDK, tienes unos ejemplos la mar de majos sobre manejo de
tablas. No solo te dan unas clases muy buenas para poder abstraerte de esta
tarea de recuperar datos del resultset sino que te devuelve una tabla.


amigo

unread,
May 19, 2003, 3:05:02 PM5/19/03
to

[ZoRo] <granbilba...@latinmail.com> escribió en el mensaje de noticias
ba5b3o$p3b4u$1...@ID-59646.news.dfncis.de...


¿Lo que quieres es meter los valores que has recuperado de la consulta SQL
dentro del Object[][] para que luego salga en una tabla de swing?

Si es asi, y lo quieres hacer a lo bruto, puedes crear cada vez un nuevo
objeto Object[][] y crear (si quires) otro array para los nombres de
columna.

Después crear la JTable con el contructor JTable(Object[][]
losdatosquehassacado, Object[] nombresdecolumna)

De una forma mas util, donde puedes añadir nuevas lineas, o eliminar
debes crear un modelo de tabla, y con ese modelo luego añadir o eliminar
datos... tienes muchos ejemplos en la página

http://manning.spindoczine.com/sbe/

también te los puedes descargar.

Espero haberte ayudado.


0 new messages