Oi, galera do GUJ!
Tudo bem?
Problema simples, penso eu, mas não consigo resolver!
Tenho meu formulário MANAGER, do qual eu gerencio determinada entidade.
Tenho meus formulários específicos, que coordenam o cadastro e alteração das entidades.
Bom, no meu formulário MANAGER, eu tenho um botão “Novo”. Quero que ele abra o formulário e, depois que o mesmo for fechado, recupere alguns dados. Desse modo:
public class ClienteManager extends JFrame {
//...
private class NovoClienteActionListener implements ActionListener {
@Override public void actionPerformed(ActionEvent event) {
try {
ClienteForm formularioCliente = new ClienteForm();
formularioCliente.showDialog(); // aqui eu mostro meu formulário na tela.
//quero que, a partir daqui, só execute depois que fechar o formulário acima!
if (formularioCliente.foiCadastrado()) {
// commit na operação INSERT.
Cliente entidadeCliente = formularioCliente.recuperarCliente();
tablemodelCliente.adicionarCliente(entidadeCliente);
}
}
catch (SQLException sqlException) {
// rollback na operação INSERT.
sqlException.printStackTrace();
}
catch (Exception anyException) {
// rollback na operação INSERT.
anyException.printStackTrace();
}
}
}
}
E meu formulário de edição:
public class ClienteForm extends JDialog {
//...
public Boolean foiCadastrado() { return cadastrado; }
private class ConfirmarActionListener implements ActionListener {
@Override public void actionPerformed(ActionEvent event) {
try {
Cliente entidadeCliente = new Cliente();
entidadeCliente.setNome("ZÉ DAS COUVES");
entidadeCliente.setCPF("11111111111");
ServicosClientes.adicionarCliente(entidadeCliente);
cadastrado = true;
dispose();
}
catch (SQLException sqlException) {
sqlException.printStackTrace();
}
catch (Exception anyException) {
anyException.printStackTrace();
}
}
}
private class ConfirmarActionListener implements ActionListener {
@Override public void actionPerformed(ActionEvent event) {
cadastrado = false;
dispose();
}
}
}
O mesmo vale para operações UPDATE.
Quando ele abre o formulário de edição, logo vai para a execução abaixo, e não quero que isso aconteça!
Alguma ideia?
Valeu, gente, fiquem com Deus!