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

7 respostas
java
F

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");
    }
}

7 Respostas

C

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.

S

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

F

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

S

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");
}
R

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

S

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:

F

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

Criado 22 de outubro de 2017
Ultima resposta 24 de out. de 2017
Respostas 7
Participantes 4