Boa tarde, sou iniciante em programação java, estou desenvolvendo um sisteminha simples pelo netbeans.
A tela de cadastro de cliente está em um JIternalFrame, ao digitar algo no campo nome e precionar enter, ele abre um dialog com um jtable e lista todos os clientes com o nome digitado.
O problema está quando dou 2 cliques na tabela para selecionar o cliente. Preciso que ao clicar, seja enviado os dados da table que está no dialog para os jtexts que estão no internalFrame.
private void cliFantasiaTextKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if (evt.getKeyCode()==KeyEvent.VK_ENTER && !cliFantasiaText.getText().isEmpty() && altera==false && novo==false){
consultaNome(cliFantasiaText.getText(), "fantasia");
}
}
private void consultaNome(String nome, String campo) {
rs = conexao.setQuery("SELECT * FROM clientes WHERE " + campo + " like '%" + nome + "%'");
try {
if (!rs.next()) { //se estiver vazio
JOptionPane.showMessageDialog(this, "Cadastro não encontrado");
} else {
cc = new JDialoConsCli(sistema, true); //cria o JDialog
rs.previous();
cc.consultaNome(rs);
}
} catch (SQLException sqle) {
sqle.printStackTrace();
}
}
public void consultaNome(ResultSet rs){
rsc=rs;
try{
for (int i=0;rs.next();i++){
DefaultTableModel modeloTabela = (DefaultTableModel)jTable1.getModel();
modeloTabela.addRow(new String[ modeloTabela.getColumnCount() ]);
jTable1.setValueAt(rsc.getString(1), i, 0);
jTable1.setValueAt(rsc.getString(2), i, 1);
jTable1.setValueAt(rsc.getString(3), i, 2);
jTable1.setValueAt(rsc.getString(4), i, 3);
}
}catch (SQLException sqle){sqle.printStackTrace();}
setVisible(true);
}
private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
if (evt.getClickCount() == 2) {
try{
rsc.absolute(jTable1.getSelectedRow()+1); //pega a linha clicada e posiciona o RS
fantasia = rsc.getString(2); //pega o valor do campo 2
cpf = rsc.getString(3); //pega o valor do campo 3
}catch (SQLException sqle){sqle.printStackTrace();}
setVisible(false);
jic.mostraCli(fantasia, cpf); //envia os valores para o JInternalFrame
}
}
public void mostraCli(String fantasia, String cpf) {
cliFantasiaText.setText(fantasia); //o campo fica em branco
cliCPFText.setText(cpf); //o campo fica em branco
System.out.print(fantasia + cpf); //nesse teste o sistema imprime os valores corretamente
}
Já tentei enviar os valores selecionados de outras formas mas também não consegui....
Alguém sabe o que estou fazendo de errado?
Obrigado!