Bom Dia Pessoal,
Sou novato por aqui e também com o Java. Realizei algumas buscas pelo site e no fórum mas não encontrei nenhuma resposta definitiva para minha dúvida.
É o seguinte, estou utilizando o NetBeans 5.0 e estou tentando passar uma consulta para uma JTable, quando chega ao fim do programa ela não carrega, veriquei a query e esta trazendo corretamente os valores, abaixo segue meu código.
Existe alguma configuração extra que se deve fazer no NetBeans para se usar o componente JTable??
Obs.: Esse código tirei de um livro.
Obrigado.
public void exibeDados(ResultSet rs) throws SQLException{
//Posiciona no primeiro registro
boolean registros = rs.next();
if (!registros){
JOptionPane.showMessageDialog(this,“A Tabela esta vazia!”);
setTitle(“Não há registros para exibir.”);
return;
}
setTitle(“Consulta”);
Vector colunas = new Vector();
Vector linhas = new Vector();
try{
//Montando o cabeçalho das colunas
ResultSetMetaData rsmd = rs.getMetaData();
for (int i = 1; i <= rsmd.getColumnCount(); ++i){
colunas.addElement(trataNomeColuna(rsmd.getColumnName(i)));
}
do{
linhas.addElement(recuperaDados(rs,rsmd));
}while(rs.next());
//Exibindo os dados
resultTable = new JTable(linhas,colunas);
JScrollPane scroller = new JScrollPane(resultTable);
getContentPane().add(scroller,BorderLayout.CENTER);
validate();
}
catch (SQLException sqlex){
sqlex.printStackTrace();
}
}
private Vector recuperaDados(ResultSet rs, ResultSetMetaData rsmd)
throws SQLException {
Vector dadosTabela = new Vector();
for (int i = 1; i <= rsmd.getColumnCount(); ++i){
dadosTabela.addElement(rs.getString(i));
}
return dadosTabela;
}
private String trataNomeColuna(String str){
String result = "";
String[] nomeColuna = new String[4];
nomeColuna[0] = "codigo";
nomeColuna[1] = "nome";
nomeColuna[2] = "altura";
nomeColuna[3] = "idade";
String[] nomeTratado = new String[4];
nomeTratado[0] = "Código";
nomeTratado[1] = "Nome";
nomeTratado[2] = "Altura";
nomeTratado[3] = "Idade";
for (int i = 0; i <= nomeColuna.length; ++i){
if (str.trim().equals(nomeColuna[i].trim())){
result = nomeTratado[i];
break;
}
}
return result;
}