JAVA - Criando Método de Salvar e Editar no botão Salvar

Pessoal a situação é a seguinte estou criando um programa em java o qual quero que ao clicar no botão editar o botão salvar fique ativo, ao editar o conteúdo o usuário é obrigado para salvar a modificação à clicar no botão salvar.

Para isso criei uma flag com valor inicial 0

Se o usuario clicar no botao NOVO vai valer um mas caso contrário continua zero

Certo voltando ao que abordei, abaixo mostro código que criei creio que o problema esteja nos IF

Queria que funcionasse da seguinte forma se a FLAG==1 ele entra para salvar e faz a condição da senha. Se a flag for igual a 0 faz o update

private void jButtonSalvarActionPerformed(java.awt.event.ActionEvent evt) {                                              
    //NESSE CASO SERA INSERI UM NOVO USUARIO AO CLICAR EM SALVAR APENAS O FLAG VALE UM 
    if (flag == 1) //se o flag for igual a 1 
    {
        if (jPasswordFieldSenha.getText().equals(jPasswordFieldConfirma.getText())) {//SE A SENHA FOR IGUAL A DA CONFIRMACAO AI ENTRA
            mod.setNome(jTextFieldNome.getText());
            mod.setPermissao((String) jComboBoxTipo.getSelectedItem());
            mod.setCpf(jFormattedTextFieldCpf.getText());
            mod.setSenha(jPasswordFieldSenha.getText());
            control.Salvar(mod);
            jTextFieldid.setText("");
            jFormattedTextFieldCpf.setText("");
            jTextFieldNome.setText("");
            jPasswordFieldSenha.setText("");
            jPasswordFieldConfirma.setText("");
            jButtonSalvar.setEnabled(!true);
            jTextFieldNome.setEnabled(!true);
            jPasswordFieldSenha.setEnabled(!true);
            jPasswordFieldConfirma.setEnabled(!true);
            jFormattedTextFieldCpf.setEnabled(!true);
            jComboBoxTipo.setEnabled(!true);
            jButtonNovo.setEnabled(!false);
            jButtonCancelar.setEnabled(!true);
            preencherTabela("select *from login order by nome");
        } else {//SE A SENHA NAO FOR IGUAL
            JOptionPane.showMessageDialog(rootPane, "As senhas não correpondem");
        }
    } else {//SE A FLAG NAO VALER UM PULA TODO O CODIGO ACIMA E VEM DIRETO PARA O ELSE
        mod.setNome(jTextFieldNome.getText());
        mod.setPermissao((String) jComboBoxTipo.getSelectedItem());
        mod.setCpf(jFormattedTextFieldCpf.getText());
        mod.setSenha(jPasswordFieldSenha.getText());
        control.Editar(mod);
        jTextFieldid.setText("");
        jFormattedTextFieldCpf.setText("");
        jTextFieldNome.setText("");
        jPasswordFieldSenha.setText("");
        jPasswordFieldConfirma.setText("");
        jButtonSalvar.setEnabled(!true);
        jTextFieldNome.setEnabled(!true);
        jPasswordFieldSenha.setEnabled(!true);
        jPasswordFieldConfirma.setEnabled(!true);
        jFormattedTextFieldCpf.setEnabled(!true);
        jComboBoxTipo.setEnabled(!true);
        jButtonNovo.setEnabled(!false);
        jButtonCancelar.setEnabled(!true);
        preencherTabela("select *from login order by nome");
    }
}

Bacana
E qual é o problema?
Não tá salvando? Não tá mudando o valor da flag? Tá dando erro? Caiu em algum exception que não mostrou aí? Bugou alguma coisa? Travou a IDE? Apagou teu sistema operacional? Alguma mensagem de erro?

Colabora

Depois do final do else, coloca flag = 0; Assim a flag volta ao valor inicial.

Pergunta:
Algum motivo para habilitar/desabilitar os componentes utilizando !true e !false ao invés de false e true?

Mais praticidade, aproveitamento de código e não precisar ficar escrevendo muito kkkk explicação: se for true é verdadeiro de for !true(diferente de true) é falso

Cada um com seu ponto de vista.

Não notei aproveitamento de código, aliás no seu exemplo há código duplicado.

Será que não ficaria mais simples assim:

private void jButtonSalvarActionPerformed(java.awt.event.ActionEvent evt) {

    // atualizar modelo
    mod.setNome(jTextFieldNome.getText());
    mod.setPermissao((String) jComboBoxTipo.getSelectedItem());
    mod.setCpf(jFormattedTextFieldCpf.getText());
    mod.setSenha(jPasswordFieldSenha.getText());

    // flag para habilitar/desabilidat componentes
    boolean habilitar = true;

    //NESSE CASO SERA INSERI UM NOVO USUARIO AO CLICAR EM SALVAR APENAS O FLAG VALE UM 
    if (flag == 1) {
        if (jPasswordFieldSenha.getText().equals(jPasswordFieldConfirma.getText())) {//SE A SENHA FOR IGUAL A DA CONFIRMACAO AI ENTRA
            control.Salvar(mod);
            habilitar = false;
        } else {
            JOptionPane.showMessageDialog(rootPane, "As senhas não correpondem");
            return;
        }
    } else {
        control.Editar(mod);
    }

    // limpar campos
    jTextFieldid.setText("");
    jFormattedTextFieldCpf.setText("");
    jTextFieldNome.setText("");
    jPasswordFieldSenha.setText("");
    jPasswordFieldConfirma.setText("");

    // habilidar/desabilitar componentes
    jButtonSalvar.setEnabled(habilitar);
    jTextFieldNome.setEnabled(habilitar);
    jPasswordFieldSenha.setEnabled(habilitar);
    jPasswordFieldConfirma.setEnabled(habilitar);
    jFormattedTextFieldCpf.setEnabled(habilitar);
    jComboBoxTipo.setEnabled(habilitar);

    jButtonNovo.setEnabled(!habilitar);
    jButtonCancelar.setEnabled(habilitar);

    preencherTabela("select *from login order by nome");
}
1 curtida

Já ouviu falar em escrever código ofuscado? tá ai um exemplo disso, kkkk

1 curtida

HaHaHa.
Então, há algum tempo eu fiz um “profanador de código”.
Eu usei algumas vezes pra postar código pronto para pessoas preguiçosas.

Aí eu consigo fazer um código perfeitamente compilável e executável, mas absolutamente ilegível, veja um exemplo:

public class HelloWorld {

    public static void main(String[] args) {
        // \u000a\u0048\u0065\u006c\u006c\u006f\u0057\u006f\u0072\u006c\u0064\u0020\u0070\u0072\u006f\u0067\u0072\u0061\u006d\u0061\u0020\u003d\u0020\u006e\u0065\u0077\u0020\u0048\u0065\u006c\u006c\u006f\u0057\u006f\u0072\u006c\u0064\u0028\u0029\u003b
        // \u000a\u0070\u0072\u006f\u0067\u0072\u0061\u006d\u0061\u002e\u0065\u0078\u0065\u0063\u0075\u0074\u0061\u0072\u0028\u0029\u003b
    }

    // \u000a\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0076\u006f\u0069\u0064\u0020\u0065\u0078\u0065\u0063\u0075\u0074\u0061\u0072\u0028\u0029\u0020\u007b
        // \u000a\u0053\u0074\u0072\u0069\u006e\u0067\u0020\u006d\u0065\u006e\u0073\u0061\u0067\u0065\u006d\u0020\u003d\u0020\u0022\u0048\u0065\u006c\u006c\u006f\u0020\u0057\u006f\u0072\u006c\u0064\u0022\u003b
        // \u000a\u0053\u0079\u0073\u0074\u0065\u006d\u002e\u006f\u0075\u0074\u002e\u0070\u0072\u0069\u006e\u0074\u006c\u006e\u0028\u006d\u0065\u006e\u0073\u0061\u0067\u0065\u006d\u0029\u003b
    // \u000a\u007d
}

pode compilar e executar que eu garanto! :slight_smile:

1 curtida

Excelente tenho a humildade de falar que estou começando por isso que faço dessa forma. Foi da forma que aprendi sozinho por isso que por vezes acho que estou fazendo o melhor gostei dessa forma que você fez e irei testar muito obrigado pela força