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