Um if com problemas

5 respostas
M

Olá, pessoal,

Tenho no meu aplicativo duas JTextField , a T1 e a T2. Clico em um JButton , B1, e a primeira coisa que faço no método actionPerformed(), é verificar, através de uma instrução if-else, se alguma das duas caixas está vazia, se houver caixa vazia abre uma showMessageDialog que avisa que falta preencher dados. Se não tiver nenhuma caixa vazia, eu usei uma cláusula else, que realiza a operação desejada.

Mas está com um problema, se alguma das duas JTextField está vazia, ele está abrindo a MessageDialog certo, mas quando eu clico no botão OK da mensagem ele segue para o else e faz a operação. Não deveria, deveria sair da rotina e não executar o else.

Veja parte do meu código:

if (e.getSource() == B1 )
  {

        if(T1.getText().equals(""))
           {
              JOptionPane.showMessageDialog(null, "Falta completar alguma entrada de dados");
           }

        if(T2.getText().equals(""))
           {
              JOptionPane.showMessageDialog ( null, "Falta completar alguma entrada de dados"); 
           }

        else
           {

              // aqui ele faz a operação desejada 

           }
   }

Como eu faço antes do else para interromper, não deixar ele entrar no else?

Abraço, amigos.
Marco

5 Respostas

C

e aí cara,
coloque um else para aninhar as condições as condições

if (e.getSource() == B1 )
{

if(T1.getText().equals("")) 
       { 
          JOptionPane.showMessageDialog(null, "Falta completar alguma entrada de dados"); 
       }
:twisted:        else

if(T2.getText().equals(""))

{

JOptionPane.showMessageDialog ( null, “Falta completar alguma entrada de dados”);

}
else 
       { 

          // aqui ele faz a operação desejada 

       }

}

S

if (e.getSource() == B1 ) { if(T1.getText().equals("") || T2.getText().equals("")) { JOptionPane.showMessageDialog(null, "Falta completar alguma entrada de dados"); } else { // aqui ele faz a operação desejada } }

Assim?

M

Olá, Sguenemann,

Tubo bom, cara? Obrigado por colaborar.
Mas isso que você fez apenas colocou numa única instrução as duas caixas T1 e T2, é ótimo fazer assim, mas meu problema não é esse.

É que quando uma das caixas está vazia, abresse-se a MessageDialog avisando, aí o usuário clica no botão OK da MessageDialog e o programa segue para o else??? Tá errado, ele não pode seguir para o else, ele só deve ir para o else se as primeiras condições forem falsas, mas ele está fazendo assim, abre a MessageDialog, diz que tem caixa vazia, e executa o códogo que esta no else!!! Não pode, tá errado.

Então, não é bem o que você entendeu, mas, cara, agradeço da mesma forma sua tentativa de ajuda. Pensa aí, vê se consegue uma saída pra me ajudar. Abraço, amigo.

Marco

L

Deixa eu ver se eu advinhei:
tu tá tentando com a primeira caixa vazia e a segunda não. Certo?
acontece o seguinte:
tu fez o if da T1, ela estava vazia, o programa mostrou o OptionPane, depois ele foi pra T2, que não está vazia, então ele caiu no else e executou o comando.

Se tu fizer o que alguma das pessoas de cima disse, vai funcionar :wink:

flw :wink:

M

Ao Lance,

Cara, acho que você matou a questão, eu não enxerguei isso, deve ser isso mesmo. Então, vou colocar as duas caixas em um só IF, porque aí, ele interrompe o fluxo e não vai para o else, você viu certo, depois que ele encontra uma caixa vazia, vai pra instrução IF seguinte, ela é falsa porque a caixa não está vazia, então, como é falsa, ela vai ao else.

Obrigado, cara, ajudou legal. E desejo agradecer a todos acima que ajudaram muito com as mensagens.
Abraço, amigos.
Marco

Criado 10 de junho de 2006
Ultima resposta 11 de jun. de 2006
Respostas 5
Participantes 4