|
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; }
|
