Oi pessoal,
Estou desenvelvendo um sistema onde o usuario escolhe uma categoria de um combobox e a partir desta sera listados todos os itens no
JTable. Nao existe nenhum erro de compilacao, mas o resultado da consulta nao esta aparecendo no JTable.
Algeum pode me ajudar?
Vejam o codigo:
private javax.swing.JComboBox categoria;
private javax.swing.JTable tabela;
private Vector cabecalho = new Vector();
private Vector linhas = new Vector();
private String recupera;
categoria= new javax.swing.JComboBox();
tabela= new javax.swing.JTable(linhas,cabecalho);
ListarCategoria();
categoria.setBorder(new javax.swing.border.BevelBorder(0));
//jComboBox1.setFont(new java.awt.Font ("Century Gothic", 0, 12));
categoria.setBackground(java.awt.Color.white);
getContentPane().add(categoria);
categoria.setBounds(130, 40, 240, 20);
categoria.addItemListener(
new ItemListener(){
public void itemStateChanged( ItemEvent event){
String cat = (String) categoria.getSelectedItem();
preencher(cat);
}
}
);
JScrollPane scroller = new JScrollPane(tabela);
scroller.setBackground(java.awt.Color.white);
getContentPane().add(scroller);
scroller.setBounds(50, 90, 480, 140);
public void preencher(String x){
String escolha = x;
conexao();
//bloco try responsavel por recuperar o codigo da categoria
try{
Stmt=con.createStatement();
RS= Stmt.executeQuery("Select cod_categoria from Categoria where nome = '"+escolha+"'");
int i=0;
if(RS.next()){
cod = RS.getString("cod_categoria");
}
// JOptionPane.showMessageDialog(null,
// cod);
}catch(SQLException ex){
JOptionPane.showMessageDialog(null,"Erro ao Recuperar o codigo da categoria!",
"Mensagem",JOptionPane.ERROR_MESSAGE);
}
//bloco try responsavel por recuperar os dados do produto
try{
Stmt=con.createStatement();
RS= Stmt.executeQuery("Select * from Produto where cod_categoria = "+Integer.parseInt(cod) );
RS.next();
ResultSetMetaData rsmd = RS.getMetaData();
for(int i = 1; i<=rsmd.getColumnCount(); i++)
cabecalho.addElement(rsmd.getColumnName(i));
do{
linhas.addElement(proximaLinha(RS,rsmd) );
}
while(RS.next());
fechar();
}catch(SQLException ex){
JOptionPane.showMessageDialog(null,"Erro ao Executar a Consulta!",
"Mensagem",JOptionPane.ERROR_MESSAGE);
}
}
private Vector proximaLinha(ResultSet RS, ResultSetMetaData rsmd){
Vector LinhaAtual = new Vector();
try
{
for ( int i = 1; i<=rsmd.getColumnCount();i++)
switch(rsmd.getColumnType(i))
{
case Types.VARCHAR: LinhaAtual.addElement(RS.getString(i));
break;
case Types.TIMESTAMP: LinhaAtual.addElement(RS.getDate(i));
break;
case Types.NUMERIC: LinhaAtual.addElement(new Long(RS.getLong(i)));
break;
}
}
catch(SQLException e){
e.printStackTrace();
}
return LinhaAtual;
}