oi, pessoal!
eu tenho um botão que chama um jInternalFrame, q contem um jTable.
pelo clique do mouse, funciona blz.
pela tecla de atalho, ele não preenche a tabela da maneira certa.
dando um enter no botão, aparece o jInternalFrame, mas com a tabela vazia.
Das 3 maneiras, é o mesmo método consultar() q chamo…
Implementei apenas os eventos ActionPerformed e o keyPressed:
private void JBconsultarKeyPressed(java.awt.event.KeyEvent evt) {
if (evt.getKeyCode() == evt.VK_ENTER)
this.consultar();
this.trataKey(evt);
}
private void JBconsultarActionPerformed(java.awt.event.ActionEvent evt) {
this.consultar();
}
o trataKey trata as teclas de atalho
este eh o metodo consultar():
[code]private void consultar() {
//caso o usuario jah estava com os campos preenchidos e faz uma nova consulta
//assim impede ele mudar o cliente e os dados serem de outro
if (!JTcontrato.getText().equals("")){
this.limpar();
// JFcpf.setText("");
// JFcpf.setEditable(true);
// JTcliente.setText("");
}
DefaultTableModel model = (DefaultTableModel) JTparcelas.getModel();
//zera as linhas para não repetir as linhas da consulta anterior
model.setRowCount(0);
//frame da consulta de parcelas fica invisível
JIparcelas.setVisible(false);
JIclientes.setVisible(true);
String query = "select CPF,NOME,ENDERECO,CIDADE from " + tabelaCliente+" order by NOME";
DefaultTableModel modelo = (DefaultTableModel) JTclientes.getModel();
//armazena os valores resultantes da query e preenche a linha da tabela
Object[] valores = new Object[4];
Statement stt = null;
ResultSet rst = null;
try{
stt = dao.conn().createStatement();
rst = stt.executeQuery(query);
if (!rst.next())
sst("Não existe clientes cadastrados!");
else{
sst("Consultando clientes...");
rst.beforeFirst();
while (rst.next()){
valores[0] = rst.getString("CPF");
valores[1] = rst.getString("NOME");
valores[2] = rst.getString("ENDERECO");
valores[3] = rst.getString("CIDADE");
modelo.addRow(valores);
}
}
stt.close();
rst.close();
}catch (Exception e){
sst("Erro no consultar: "+e);
}
JTconsultaCliente.requestFocus();
}[/code]