[Dúvida] Verificação If

6 respostas
B

Estou com um pequeno problema: No código abaixo ao clcar em uma das label ele informa a mensagem "você acertou", porém quero que que informe UMA mensagem ao clicar nas duas labels e não informar uma mensagem para cada label clicada;

public void mousePressed(MouseEvent e) {
		
		 if ((e.getSource() == lbl[2]) || (e.getSource() == lbl[10] )){
			    JOptionPane.showMessageDialog(null,"vc acertou");   
				}

Ja tentei substituindo o || por &&, mas quando faço isso nada acontece.

se alguem puder ajudar agradeço ^^

6 Respostas

yhhik

crie variáveis boolean para cada uma label para fazer esse controle.

discorpio

Boa tarde a todos.

Você poderia ser mais específico, voce quer clicar nas duas labels ao mesmo tempo, ou clicar em uma e só aparecer a mensagem quando for clicar na outra, ou quando for lbl[2] e lbl[10], aparecesse apenas uma mensagem :?: :?: :?:

Bom se for a última questão, então verifique se você atribuiu o listener para todo o seu array de labels, tipo:

lbl[0].addMouseListener(this);
   .....
   lbl[2].addMouseListener(this);
   ....
   ....
   lbl[10].addMouseListener(this);

Além disso, você pode colocar mais alguns recursos de POO neste método ao invés de ficar testando tantos lbls, assim:

public void mousePressed(MouseEvent e) {  
         if (e.getSource() instanceof JLabel){
              JLabel label = (JLabel)e.getSource();
              JOptionPane.showMessageDialog(null,"vc acertou no label "+label.getText());     
         } 
   }
B

discorpio:
Boa tarde a todos.

Você poderia ser mais específico, voce quer clicar nas duas labels ao mesmo tempo, ou clicar em uma e só aparecer a mensagem quando for clicar na outra, ou quando for lbl[2] e lbl[10], aparecesse apenas uma mensagem :?: :?: :?:

Bom se for a última questão, então verifique se você atribuiu o listener para todo o seu array de labels, tipo:

lbl[0].addMouseListener(this);
   .....
   lbl[2].addMouseListener(this);
   ....
   ....
   lbl[10].addMouseListener(this);

Além disso, você pode colocar mais alguns recursos de POO neste método ao invés de ficar testando tantos lbls, assim:

public void mousePressed(MouseEvent e) {  
         if (e.getSource() instanceof JLabel){
              JLabel label = (JLabel)e.getSource();
              JOptionPane.showMessageDialog(null,"vc acertou no label "+label.getText());     
         } 
   }

Isso que você ja colocou ja fiz certinho o problema é esse " ou clicar em uma e só aparecer a mensagem quando for clicar na outra ", desde ja obrigado ^^

yhhik

cara seu pc tem dois ponteiros de mause?
¬¬

pq isso não funciona?
pq ele não sabe que vc já clicou na outra…entao vc precisa criar uma variavel para controlar isso.

boolean valor=false;
boolean valor2=false;
public void mousePressed(MouseEvent e) {  
          
         if ((e.getSource() == lbl[2]) 
             valor=true;
         else  if ((e.getSource() == lbl[10]) 
            valor2= true;
                 
        if(valor && valor2)
          JOptionPane.showMessageDialog(null,"vc acertou");    
}
B

Pois é kkk

Muito obrigado yhhik :smiley:

ViniGodoy

Por favor, não banalize as tags informativas como [Resolvido] para escrever o óbvio, como [Dúvida] ou [Ajuda].

Aproveite e edite seu primeiro tópico já substituindo o título [Duvida] por [Resolvido].

Criado 10 de janeiro de 2012
Ultima resposta 10 de jan. de 2012
Respostas 6
Participantes 4