Estou com problemas na hora de criar uma tela de Editar Dados, gostaria de quando o usuário deixasse algum campo vazio aparecesse uma mensagem para ele não deixar em branco, para não sobrescrever no banco o que estava completado já.
Tive problemas por ser JTextField e JPasswordField de acordo como foi colocado no código abaixo
if((passSenha.getText().replace(" ","").isEmpty()) || (passSenhaConf.getText().replace(" ","").isEmpty()) || //segue a lógica ){
System.out.println("Os campos nao podem ficar vazios!");
JOptionPane.showMessageDialog(this,"Os campos nao podem ficar vazios!");
}
onde: passSenha.getText().replace(" ","").isEmpty() eu pego o texto que está neste neste JTextField ou JPasswordField, repasso os espaços que tem por vazio(para se o usuário digitar somente espaços nos campos) e depois verifico se essa String que foi retornada está vazia.
Ai é só verificar em todos os campos, e usando o ||, pois com o || se apenas um campo estiver vazio ele já exibe a mensagem.
Eu tinha pensado anteriormente em utilizar o && para que somente depois que todos os campos estivessem completados fosse ocorrido, porém vi que seria melhor utilizando o ||, obrigado por ajudar com tudo
[edit] [code] if(event.getSource() == btnSalvar){
if((passSenha.getText().replace(" ","").isEmpty()) || (passSenhaConf.getText().replace(" ","").isEmpty()) || (passNovaSenha.getText().replace(" ","").isEmpty()) || (txtTipoUsuario.getText().replace(" ","").isEmpty()) || (txtNome.getText().replace(" ","").isEmpty()) ||
(txtSenha.getText().replace(" ","").isEmpty()) || (txtNovaSenha.getText().replace(" ","").isEmpty()) || (txtSenhaConf.getText().replace(" ","").isEmpty()) || (txtEmail.getText().replace(" ","").isEmpty()) || (txtEmailConf.getText().replace(" ","").isEmpty()) ||
(txtRaRf.getText().replace(" ","").isEmpty()) || (txtArea.getText().replace(" ","").isEmpty()) || (txtSexo.getText().replace(" ","").isEmpty())){
System.out.println("Os campos nao podem ficar vazios!");
JOptionPane.showMessageDialog(this,"Os campos não podem ficar vazios!");
}
if(passSenha.getText().equals(passSenhaConf.getText()) != (passSenha.getText().replace(" ","").isEmpty()) || (passSenhaConf.getText().replace(" ","").isEmpty()) && txtEmail.getText().equals(txtEmailConf.getText()) != (txtEmail.getText().replace(" ","").isEmpty()) || (txtEmailConf.getText().replace(" ","").isEmpty()) ){ //utilizar getText para comparar.
//falta implementar com o banco
System.out.println("Dados Alterados com sucesso");
JOptionPane.showMessageDialog(this,"Dados Alterados com sucesso!");
this.dispose();
}
else{
System.out.println("E-mail ou senha invalidos!");
JOptionPane.showMessageDialog(null,"E-mail ou Senha inválidos!");
}
}
[/code]
Eu coloquei desta forma e mesmo assim mas agora aparece a mensagem “Os campos nao podem ficar vazios!” porém mesmo assim quando dou o ok, mostra que os Dados Foram alterados do mesmo jeito, o que estou fazendo de errado? Eu gostaria que os dados fossem alterados somente quando os Campos não estivessem vazios e as senhas estivessem corretas.