2 métodos em um botão

Bom eu tava aqui fazendo um cadastro no Java dai eu tenho o botão inserir e o alterar. Quando eu clico no botão inserir ele abre um novo Form(JDialog) e nele eu coloco os dados e salvo. Dai para alterar eu tava criando um novo form igual o de inserir para alterar os dados. Só que dai ia dar trabalho ficar fazendo isso para todos os forms. Dai eu tava tentando criar um atributo na minha classe Médico chamado flag do tipo boolean. Ai no meu form de consultarMédico tem o botão inserir onde chama o outro form. Dai no construtor do outro form eu passava o parametro flag como false. Ai no coódigo do botão eu botava se fosse false ele chamava meu método inserir senão ele chamava meu método alterar. Só que não ta dando certo. Se alguem puder me dar uma idéia de como eu faria.

Posta o código…ta meio confusa essa sua explicação.

[]´s

Daniel

Nosssa… quanto "Dai " rs

Posta o código que fica mais facil pra gente aqui do GUJ

Bem o que você quer fazer está bem complicado, porque você quer ter duas ações dentro do evento de um botão, isso vai ficar complicado de fazer. Uma sugestão que eu dou é para você fazer dois métodos, um para inserir e outro para alterar dados, e de acordo com a ação que o usuário queira fazer é chamado um desses dois métodos, isso ficará mais simples de ser implementado.

Supondo que você esteja utilizando java swing sugiro o seguinte:

Ao selecionar a opção para cadastrar um novo registro você irá abrir o form e definir o actionListener do botão salvar para o método insert.
Ao selecionar a opção para editar um registro você irá abrir o form e definir o actionListener do botão para o método update.

Você pode tentar também uma abordagem com polimorfismo onde você extende seu form como saveForm e updateForm onde você deverá implementar um método salvar para cada uma das classes filhas que faz sua ação desejada, e então você define o actionListener para o método salvar. Ao abrir a tela do formulário você decide se vai ser um saveForm ou um updateForm.

Espero ter dado uma luz…

Vou postar o código pra ficar mais facil de entender. Eu tenho lá o meu Repositório onde ficam meu métodos.

[quote][code] public void InserirMedico(Medico medico) {
this.listaMedico.add(medico);
}

public void AlterarMedico(Medico medico) {
    for (int i = 0; i < this.listaMedico.size(); i++) {
        if (this.listaMedico.get(i).getCrm().equals(medico.getCrm())) {
            this.listaMedico.set(i, medico);
        }
    }
}[/code][/quote]

Ai tem o Inserir e o Alterar.

Dai eu tenho meu FormConsultaMedico. Nele eu listo os meus registros e tenho o botão de inserir e alterar. Eu quero chamar o meu FormCadastroMedico tanto pelo botão de inserir como pelo botão de alterar. Até ai tudo beleza. Ai dentro do meu FormCadastroMédico eu tenho lá o meu botão salvar.

[quote] Medico adicionar = new Medico(); adicionar.setNome(this.campoNome.getText()); adicionar.setCodigo(this.campoCodigo.getText()); adicionar.setCrm(this.campoCrm.getText()); try { fachada.inserirMedico(adicionar); } catch (ExcecaoMedico ex) { Logger.getLogger(FormCadastroMedico.class.getName()).log(Level.SEVERE, null, ex); } campoNome.setText(null); campoCodigo.setText(null); campoCrm.setText(null);[/quote]

Só que ao abrir ele pelo botão alterar eu quero que ele execute isso.

[quote]medico.setNome(this.campoNome.getText()); medico.setCodigo(this.campoCodigo.getText()); medico.setCrm(this.campoCrm.getText()); try { fachada.AlterarMedico(medico); JOptionPane.showMessageDialog(this, "Médico alterado"); } catch (ExcecaoMedico ex) { JOptionPane.showMessageDialog(this, ex.getMessage()); }[/quote]

No Delphi eu usava uma variável flag. Dai se fosse 1 ela chamava meu método de inserir e se fosse 0 meu método de alterar. Dai eu tenho criar uma variavel boolean chamada flag. E no construtor para chamar o FormCadastroMedico pelo botão inserir eu dizia que ela era verdadeira e no alterar que era falsa. Dai usava o if no botão salvar mas não deu certo.

Alguem sabe ??