Salve galera
Eu tenho 2 JDialogs, o JDialog1 e o JDialog2…O JDialog1 abre o JDialog2, e no JD2 eu tenho uma table que envia informações para o JD1…Bem, seguindo umas dicas que andei lendo, inclusive uma do Vini que gostei muito e estou tentando por em pratica, cheguei a essa maneira.
// esse é o JD1 que invoca JD2
public void setValorGridConsultaTProduto(int value) throws SQLException{
if (value > 0){
System.out.println("o valor é: " + value); //aqui eu consigo imprimir o valor vindo do JD2, ou seja, ele ta mandando.
codigoTProduto.setValue(value);
//System.out.println("o valor é: " + value);
String sql = String.format("SELECT * FROM tipoproduto WHERE codigo = %d",
value);
con2.conectaBD();
con2.executaSQL(sql);
con2.rs.next();
codigoTProduto.setText(con2.rs.getString("codigo"));
nomeTProduto.setText(con2.rs.getString("nomeproduto"));
}else{
JOptionPane.showMessageDialog(null, "O valor do codigo e: "+value);
}
}
//Agora esse é o JD2 que envia o valor para o JD1 e depois se fecha.
public int getValorColunaTabela(){ //pega o valor da coluna da tabela
//retorna o valor da coluna
String valorColuna = (String) tabelaResultados.getModel().getValueAt(tabelaResultados.getSelectedRow(),0);
return Integer.parseInt(valorColuna);
}
public void getValueGridConsulta() throws SQLException{
//pega valor do grid e manda para o cadastro JD1
try {
CadastroTipoProduto cadastro = new CadastroTipoProduto(null, true); //instancia o cadastro q é o JD1
cadastro.setValorGridConsultaTProduto(getValorColunaTabela()); //manda o valor da coluna para JD1
this.dispose(); //fecha JD2
} catch (ParseException ex) {
JOptionPane.showMessageDialog(null, ex.getMessage());
}
}
Bem galera, isso funciona em partes, pq no System.out eu consigo imprimir o valor vindo do JD2 e fazer toda a consulta sql com o valor vindo. Porém quando mando preencher os campos do JD1 com textfield.settext, não funciona.
Tem que dar algum revalidate() ou algo assim ??? Eu ja tentei dar um revalidate no panel que esta os controles do JD1 mas, ainda naum tive resultados.
obrigado.