Deixar Campos JTextField não entrar em branco

3 respostas
java
D

Gostaria de deixar que os campos não fossem validados enquanto algum campo não estivesse em branco e as senhas e email batessem com sua confirmação. segue o código abaixo:

public void actionPerformed (ActionEvent event){
   
         
         
      
      //Botões
         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!");
         }
          
          
            
      
         
      }
      
      if(event.getSource() == btnCancelar){
      
         //TelaMeusDados.this.setVisible(false); //Deixará tela invisível
         this.dispose();
      
         
         
      }
   
   
   }
Só que quando completo todos os campos ainda mostra
"Os campos não podem ficar vazios"
e depois
"Dados Alterados com sucesso!"
.

ou se deixo tudo vazio ele aparece a mesma coisa!
Alguém pode me ajudar no que estou fazendo de errado?

3 Respostas

M

se eu entendi o que você quer fazer, basta colocar um return depois do JOptionPane.showMessageDialog(this,“Os campos não podem ficar vazios!”); para que a execuçao do metodo pare, ficaria assim JOptionPane.showMessageDialog(this,"Os campos não podem ficar vazios!"); return;

acho que isso resolve parcialmente!

D

Então, resolveu o problema de ir os dois comando juntos, porém mesmo com todos os campos preenchidos mostra:

E somente este. Não mostra que os dados foram alterados.

M
ai no caso o seu if que verifica se os campos estão vazios não esta funcionando corretamente, faça o seguinte teste de 2 em 2 campos e vê se continua pra ficar mais facil de testar faça assim
if(event.getSource() == btnSalvar){

         
          boolean senha = passSenha.getText().replace(" ","").isEmpty();
          boolean senhaConf = passSenhaConf.getText().replace(" ","").isEmpty();
          boolean novaSenha = passNovaSenha.getText().replace(" ","").isEmpty();
          boolean tipoUser = txtTipoUsuario.getText().replace(" ","").isEmpty();
          boolean txNome = txtNome.getText().replace(" ","").isEmpty();
          boolean txSenha = txtSenha.getText().replace(" ","").isEmpty();
          boolean txNovaSenha = txtNovaSenha.getText().replace(" ","").isEmpty();
          boolean txSenhaConf = txtSenhaConf.getText().replace(" ","").isEmpty();
          boolean txEmail = txtEmail.getText().replace(" ","").isEmpty();
          boolean txEmailConf = txtEmailConf.getText().replace(" ","").isEmpty();
          boolean txRaRf = txtRaRf.getText().replace(" ","").isEmpty();
          boolean txArea = txtArea.getText().replace(" ","").isEmpty();
          boolean txSexo = txtSexo.getText().replace(" ","").isEmpty();


         if(senha || senhaConf){
            System.out.println("Os campos nao podem ficar vazios!");
            JOptionPane.showMessageDialog(this,"Os campos não podem ficar vazios!");   
            return;  
         }
         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!");
         }
      }


      if(event.getSource() == btnCancelar){
         //TelaMeusDados.this.setVisible(false); //Deixará tela invisível
         this.dispose();
      }
Criado 15 de novembro de 2016
Ultima resposta 16 de nov. de 2016
Respostas 3
Participantes 2