Comparaçao de vars.. IF

1 resposta
O

Pessoal, pretendo fazer assim: Tenho 4 figuras sendo 2 pares, quando clico numa figura gravo numa variavel, quando clico na outra ele vai comparar no if se faz o par, ou seja, se sao valores iguais.

O problema posto no final, segue o codigo: Metodo 1
private String ponteiro, saiNumero, iconex;
private int numero;
   private JButton button1, resete, button2, button3, button4;

public String randomico(){
int t_casa=lista.size();
numero=r.nextInt(t_casa);
saiNumero =(String) lista.get(numero);
lista.remove(numero); 

return saiNumero; 
}
Metodo 2, compara os cliques
void icone(JButton clicado){
    String num = clicado.getName().toString();
    iconex = num+".gif";
    if(num == ponteiro){
clicado.setIcon(new ImageIcon(iconex));
        titulo.setText("Parabéns, figura: " + num);
        //ponteiro = "0";
    }else{
      clicado.setIcon(new ImageIcon(iconex));
    //seta ponteiro
    ponteiro = num;
    }
   
}
Metodo dos 4 botoes
public void aparencia(){
if(iconex == null){
iconex = "iconjogo.gif";
}

ImageIcon icone1 = new ImageIcon(iconex); 

       JFrame frame = new JFrame();

 button1 = new JButton();
 button2.setName("1");
     button1.setIcon(icone1);
       button1.setContentAreaFilled(false);
       button1.setBorderPainted(false);

///

 button2 = new JButton(); 
        button2.setName("1");
       button2.setIcon(icone1);
       button2.setContentAreaFilled(false);
       button2.setBorderPainted(false);
 cons.add(button2, c);

///a partir daki fiz o setname com o randomico

 button3 = new JButton();
 button3.setName(randomico());
 button3.setIcon(icone1);
 button3.setContentAreaFilled(false);
 button3.setBorderPainted(false);
cons.add(button3, c);

///

button4 = new JButton();
button4.setName(randomico());
button4.setIcon(icone1);
button4.setContentAreaFilled(false);
button4.setBorderPainted(false);
cons.add(button4, c);

/////////


       frame.setSize(600,600);
       frame.setVisible(true);
      
    JFrame.setDefaultLookAndFeelDecorated(true);
    button4.addActionListener(this); 
    button3.addActionListener(this); 
       button2.addActionListener(this); 
       button1.addActionListener(this); 
       resete.addActionListener(this);   
       frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

}

 public void actionPerformed(ActionEvent e){
                      
           icone((JButton) e.getSource());    
            
        }

Bom, os botoes que eu coloquei setName iguais sem usar o randomico(), o if do icone() aceita legal, masss quando usando o randomico mesmo gerando setname iguais, nao entra no if.

Mas um bug que me serviu pra analisar: se clico duas vezes no button que usa o randomico, o if aceita. Nao entra no if mesmo sendo randomicos iguais mas em buttons diferentes.

1 Resposta

Sami_Koivu

Olá,

resposta rápido, pois já são quase 4 horas de manhã por aqui:

Parece que você está usando o operador == para comparar objetos String. Em virtualmente todos os casos com Strings, isso não é aconselhavel. Em vez de == use o método equals.

Veja por exemplo esse página do artigo do GUJ sobre Strings:
http://www.guj.com.br/java.tutorial.artigo.103.2.guj

Abraços,
Sami

Criado 12 de julho de 2005
Ultima resposta 12 de jul. de 2005
Respostas 1
Participantes 2