Olá, estou usando o código abaixo pra pegar uma consulta feito ao banco de dados e mostrar em uma tabela, o problema é que eu percebi que ele nunca mostra a primeira linha da tabela, só a partir da segunda!
Quando o resulto tem só um registro, ele manda a mensagem que não tem registros, mas qndo não tem, ele não faz nada, fica lá procurando eu acho…
Acho que o problema está nas linhas 2 a 7
Alguém pode me ajudar?
public void displayResultSet (ResultSet rs, Container NomePainel)throws SQLException {
boolean moreRecords = rs.next();
if (!moreRecords) {
JOptionPane.showMessageDialog(this,"Sem Registros");
setTitle("Nothing!");
return;
}
setTitle("Nome da Tabela");
//nome da tabela
Vector coluna = new Vector();
Vector linha = new Vector();
try { // tenta pegar os títulos da colunas
ResultSetMetaData titulocoluna = rs.getMetaData();
for (int i = 1; i<=titulocoluna.getColumnCount(); i++) {
coluna.addElement(titulocoluna.getColumnName(i));
}
do { // obtem dados da linha
linha.addElement(getNextRow(rs, titulocoluna));
}
while (rs.next());
// cria a tabela com os resultados
JTable table = new JTable(linha, coluna);
//adiciona função scroll
JScrollPane scroller = new JScrollPane(table);
//scroller.setSize(900, 100);
scroller.setBounds(0, 200, 900, 100);
//setContentPane(PResultado_ConsultaNotaBim);
setContentPane(NomePainel);
getContentPane().add(scroller);
validate();
}
catch (SQLException ex) {
ex.printStackTrace();
System.out.println("\nerro na criação da tabela");
}
}
public Vector getNextRow( ResultSet rs, ResultSetMetaData titulocoluna ) throws SQLException {
Vector currentRow = new Vector();
for ( int i = 1; i <= titulocoluna.getColumnCount(); i++ )
switch( titulocoluna.getColumnType( i ) ) {
case Types.VARCHAR:
currentRow.addElement( rs.getString( i ) );
break;
case Types.INTEGER:
currentRow.addElement( new Long( rs.getLong( i ) ) );
break;
case Types.DECIMAL:
currentRow.addElement(rs.getFloat(i));
break;
case Types.DATE:
String dataEmUmFormato = rs.getString(i);
SimpleDateFormat formato = new SimpleDateFormat("yyyy-MM-dd");
Date data = null;
try {
data = (Date) formato.parse(dataEmUmFormato);
}
catch (ParseException ex) {
Logger.getLogger(MenuPrincipal.class.getName()).log(Level.SEVERE, null, ex);
}
formato.applyPattern("dd/MM/yyyy");
String aniv = formato.format(data);
//System.out.println(aniv);
currentRow.addElement(aniv);
break;
}
return currentRow;
}