Esse é bem básico e funciona.
O problema é q se a consulta contiver muitas
colunas já viu né...vai dá um trabaaalho...
Para resolver isso vc utiliza o método
setDataVector(Vector,Vector) da classe DefaultTableModel.
Lembrando q para isso a table deve ter como modelo
o DefaultTableModel.
Dá uma olhada na documentação!!!
******************** Um abraço... "Começe fazendo o necessário, depois o que é possível e, de repente, você estará fazendo o impossível." ==========
private void displayResultSet( ResultSet rs )
throws SQLException{
boolean moreRecords = rs.next(); if ( ! moreRecords ) { JOptionPane.showMessageDialog(null,"Não existe dados na tabela.", "Informação",JOptionPane.INFORMATION_MESSAGE); return; } Vector columnHeads = new Vector(); Vector rows = new Vector(); try { rsMetaData = rs.getMetaData(); for( int i = 1; i <= rsMetaData.getColumnCount(); ++i ) { if(rsMetaData.getColumnName( i ).toLowerCase().equals("codigo")){ columnHeads.addElement("CÓDIGO"); } if(rsMetaData.getColumnName( i ).toLowerCase().equals("data")){ columnHeads.addElement("DATA"); } if(rsMetaData.getColumnName( i ).toLowerCase().equals("dpt")){ columnHeads.addElement("DEPARTAMENTO"); } if(rsMetaData.getColumnName( i ).toLowerCase().equals("trel")){ columnHeads.addElement("RELATÓRIO"); } if(rsMetaData.getColumnName( i ).toLowerCase().equals("ncop")){ columnHeads.addElement("CÓPIAS"); } } do { rows.addElement( getNextRow( rs, rsMetaData ) ); }while ( rs.next() ); Table = new JTable( rows, columnHeads ); JScrollPane scroller = new JScrollPane( Table ); Table.setPreferredScrollableViewportSize(new Dimension(500, 80)); pResultado.add( scroller, BorderLayout.CENTER ); pResultado.validate(); pack(); } catch ( SQLException sqlex ) { System.err.println( "Foi" ); sqlex.printStackTrace(); } } private Vector getNextRow( ResultSet rs,ResultSetMetaData rsmd ) throws SQLException{ Vector currentRow = new Vector(); for ( int i = 1; i <= rsmd.getColumnCount(); ++i ) switch( rsmd.getColumnType( i ) ){ case Types.CHAR: case Types.VARCHAR: case Types.LONGVARCHAR: currentRow.addElement( rs.getString( i ) ); break; case Types.INTEGER: currentRow.addElement( new Long( rs.getLong( i ) ) ); break; case Types.NUMERIC: currentRow.addElement( new Long( rs.getLong( i ) ) ); break; default: System.out.println( "Type was: " + rsmd.getColumnTypeName( i ) ); } return currentRow; }
|