Boa noite!
Estou fazendo um trabalho para a faculdade e como sempre deve ser em Java :roll:
Peguei um livro muito bom onde consegui um exemplo bem legal ( não consegui entender exatamente tudo) sobre como utilizar JTable.
Não está no formato que muitos de vocês aqui semeiam (Criando sua própria TableModel, usando List etc) mas foi o mais perto que consegui de fazer funcionar haha
Como esse trabalho tem prazo de entrega eu somente gostaria de entender o porquê de não estar aparecendo meus malditos dados! (Eu sou um péssimo programador, eu sei :lol:)
Sei que aqui no forum e na internet em geral há muito contéudo sobre JTable, mas acreditem eu procurei e não achei nada parecido com o meu problema. Só o do usuário CaioNascimento que eu pensei ser o mesmo problema que o meu, mas vi que não era =S
Bom, segue o código:
public void ProcuraArbitro(String tipo,String rg){
Statement st;
try{
String sql = "SELECT * FROM ARBITRO WHERE RG"+" = "+rg;
st = conn.createStatement();
rsArbitro = st.executeQuery(sql);
}catch(SQLException en){
JOptionPane.showMessageDialog(null,"Erro ao fazer a consulta!");
en.printStackTrace();
}
}
public Vector proximoRegistro(ResultSet rs, ResultSetMetaData rsmd) throws SQLException{
Vector linhaAtual = new Vector();
for(int i = 1; i<= rsmd.getColumnCount(); ++i)
switch(rsmd.getColumnType(i)){
case Types.VARCHAR:
linhaAtual.addElement(rs.getString(i));
break;
case Types.INTEGER:
linhaAtual.addElement(new Long(rs.getLong(i)));
break;
default:
JOptionPane.showMessageDialog(null,"O tipo do dados é: "+ rsmd.getColumnTypeName(i));
}
return linhaAtual;
}
public void mostraDadosArbitro( JTable tabela){
//Primeiro Registro
try{
boolean registros = rsArbitro.next();
//Se falso, não há registros
if(!registros){
JOptionPane.showMessageDialog(null,"Nenhum registro encontrado!");
return;
}
}catch(SQLException en){
en.printStackTrace();
Vector colunas = new Vector();
Vector linhas = new Vector();
try{
//Cabeçalhos da coluna
ResultSetMetaData rsmd = rsArbitro.getMetaData();
for(int i = 1; i<= rsmd.getColumnCount(); ++i){
colunas.addElement(rsmd.getColumnName(i));
do{
linhas.addElement(proximoRegistro(rsArbitro, rsmd));
}while(rsArbitro.next());
//Mostra os dados
tabela = new JTable(linhas, colunas);
}
}catch(SQLException ex){
JOptionPane.showMessageDialog(null,"Problema ao mostrar dados!");
ex.printStackTrace();
}
}
Agora do frame
ClassConector cc = new ClassConector();
cc.conectarComBD();
String tipo = "RG";
// tipo é a coluna da tabela
cc.ProcuraArbitro(tipo,rgJTextField.getText());
cc.mostraDadosArbitro(arbitroJTB);
Alguma idéia?