Tenho várias imagens em 16 botões diferentes, e queria saber como posso comparar duas dessas imagens, dando uma mensagem se são iguais ou não.
Julgo que o melhor é passar o código todo para entenderem melhor a minha questão!
O objectivo do programa é um jogo em que o jogador vira duas cartas e se forem iguais, ficam viradas para cima. O utilizador ganha quando tiver virado as 16 cartas que fazem um total de 8 imagens diferentes.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class jogo extends JPanel implements ActionListener
{
JLabel c;
JPanel msgs;
JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16;
ImageIcon img, img1,img2,img3,img4,img5,img6,img7,img8;
JFrame f;
int contador=0;
public jogo()
{
//Imagem que aparece nos 16 botões
ImageIcon img = createImageIcon ("img.jpg");
//Definição da imagem presente nos 16 botões
b1= new JButton(img);
b1.setActionCommand("b1");
b1.addActionListener(this);
b2= new JButton(img);
b2.setActionCommand("b2");
b2.addActionListener(this);
b3= new JButton(img);
b3.setActionCommand("b3");
b3.addActionListener(this);
b4= new JButton(img);
b4.setActionCommand("b4");
b4.addActionListener(this);
b5= new JButton(img);
b5.setActionCommand("b5");
b5.addActionListener(this);
b6= new JButton(img);
b6.setActionCommand("b6");
b6.addActionListener(this);
b7= new JButton(img);
b7.setActionCommand("b7");
b7.addActionListener(this);
b8= new JButton(img);
b8.setActionCommand("b8");
b8.addActionListener(this);
b9= new JButton(img);
b9.setActionCommand("b9");
b9.addActionListener(this);
b10= new JButton(img);
b10.setActionCommand("b10");
b10.addActionListener(this);
b11= new JButton(img);
b11.setActionCommand("b11");
b11.addActionListener(this);
b12= new JButton(img);
b12.setActionCommand("b12");
b12.addActionListener(this);
b13= new JButton(img);
b13.setActionCommand("b13");
b13.addActionListener(this);
b14= new JButton(img);
b14.setActionCommand("b14");
b14.addActionListener(this);
b15= new JButton(img);
b15.setActionCommand("b15");
b15.addActionListener(this);
b16= new JButton(img);
b16.setActionCommand("b16");
b16.addActionListener(this);
//Actualização da Label
JLabel c = new JLabel();
//Adicionar as imagens aos botões
add(b1);
add(b2);
add(b3);
add(b4);
add(b5);
add(b6);
add(b7);
add(b8);
add(b9);
add(b10);
add(b11);
add(b12);
add(b13);
add(b14);
add(b15);
add(b16);
add (c);
}
protected static ImageIcon createImageIcon (String path)
{
java.net.URL imgURL = jogo.class.getResource (path);
if (imgURL != null)
{
return new ImageIcon (imgURL);
}
else
{
System.err.println ("Não encontrou o ficheiro: " +path);
return null;
}
}
public void actionPerformed(ActionEvent e)
{
String acao, acao1, acao2;
acao = e.getActionCommand();
acao1 = "img";
acao2 = "img";
if(contador==0)
{
acao1 = acao;
}
else
{
acao2 = acao;
}
if(acao1==acao2)
{
JPanel msgs = new JPanel();
JOptionPane.showMessageDialog(msgs,"Parabéns");
}
JLabel c= new JLabel();
//Definir depois de dois cliques nos botões as imagens iniciais aos botões
if(contador==2)
{
ImageIcon img = createImageIcon ("img.jpg");
b1.setIcon(img);
b2.setIcon(img);
b3.setIcon(img);
b4.setIcon(img);
b5.setIcon(img);
b6.setIcon(img);
b7.setIcon(img);
b8.setIcon(img);
b9.setIcon(img);
b10.setIcon(img);
b11.setIcon(img);
b12.setIcon(img);
b13.setIcon(img);
b14.setIcon(img);
b15.setIcon(img);
b16.setIcon(img);
contador=0;
}
//Troca de imagens ao clicar no botão
if(acao=="b1")
{
if((contador<2)&&(b1!=new JButton(img1)))
{
contador++;
ImageIcon img1 = createImageIcon("img1.jpg");
b1.setIcon(img1);
JPanel msgs = new JPanel();
JOptionPane.showMessageDialog(msgs,""+contador);
}
}
if(acao=="b2")
{
if((contador<2)&&(b2!=new JButton(img2)))
{
contador++;
ImageIcon img2 = createImageIcon("img2.jpg");
b2.setIcon(img2);
JPanel msgs = new JPanel();
JOptionPane.showMessageDialog(msgs,""+contador);
}
}
if(acao=="b3")
{
if((contador<2)&&(b3!=new JButton(img3)))
{
contador++;
ImageIcon img3 = createImageIcon("img3.jpg");
b3.setIcon(img3);
JPanel msgs = new JPanel();
JOptionPane.showMessageDialog(msgs,""+contador);
}
}
if(acao=="b4")
{
if((contador<2)&&(b4!=new JButton(img4)))
{
contador++;
ImageIcon img4 = createImageIcon("img4.jpg");
b4.setIcon(img4);
JPanel msgs = new JPanel();
JOptionPane.showMessageDialog(msgs,""+contador);
}
}
if(acao=="b5")
{
if((contador<2)&&(b5!=new JButton(img5)))
{
contador++;
ImageIcon img5 = createImageIcon("img5.jpg");
b5.setIcon(img5);
JPanel msgs = new JPanel();
JOptionPane.showMessageDialog(msgs,""+contador);
}
}
if(acao=="b6")
{
if((contador<2)&&(b5!=new JButton(img5)))
{
contador++;
ImageIcon img5 = createImageIcon("img5.jpg");
b6.setIcon(img5);
JPanel msgs = new JPanel();
JOptionPane.showMessageDialog(msgs,""+contador);
}
}
if(acao=="b7")
{
if((contador<2)&&(b7!=new JButton(img7)))
{
contador++;
ImageIcon img7 = createImageIcon("img7.jpg");
b7.setIcon(img7);
JPanel msgs = new JPanel();
JOptionPane.showMessageDialog(msgs,""+contador);
}
}
if(acao=="b8")
{
if((contador<2)&&(b8!=new JButton(img8)))
{
contador++;
ImageIcon img8 = createImageIcon("img8.jpg");
b8.setIcon(img8);
JPanel msgs = new JPanel();
JOptionPane.showMessageDialog(msgs,""+contador);
}
}
if(acao=="b9")
{
if((contador<2)&&(b9!=new JButton(img1)))
{
contador++;
ImageIcon img1 = createImageIcon("img1.jpg");
b9.setIcon(img1);
JPanel msgs = new JPanel();
JOptionPane.showMessageDialog(msgs,""+contador);
}
}
if(acao=="b10")
{
if((contador<2)&&(b10!=new JButton(img2)))
{
contador++;
ImageIcon img2 = createImageIcon("img2.jpg");
b10.setIcon(img2);
JPanel msgs = new JPanel();
JOptionPane.showMessageDialog(msgs,""+contador);
}
}
if(acao=="b11")
{
if((contador<2)&&(b11!=new JButton(img3)))
{
contador++;
ImageIcon img3 = createImageIcon("img3.jpg");
b11.setIcon(img3);
JPanel msgs = new JPanel();
JOptionPane.showMessageDialog(msgs,""+contador);
}
}
if(acao=="b12")
{
if((contador<2)&&(b12!=new JButton(img4)))
{
contador++;
ImageIcon img4 = createImageIcon("img4.jpg");
b12.setIcon(img4);
JPanel msgs = new JPanel();
JOptionPane.showMessageDialog(msgs,""+contador);
}
}
if(acao=="b13")
{
if((contador<2)&&(b13!=new JButton(img5)))
{
contador++;
ImageIcon img5 = createImageIcon("img5.jpg");
b13.setIcon(img5);
JPanel msgs = new JPanel();
JOptionPane.showMessageDialog(msgs,""+contador);
}
}
if(acao=="b14")
{
if((contador<2)&&(b14!=new JButton(img6)))
{
contador++;
ImageIcon img6 = createImageIcon("img6.jpg");
b14.setIcon(img6);
JPanel msgs = new JPanel();
JOptionPane.showMessageDialog(msgs,""+contador);
}
}
if(acao=="b15")
{
if((contador<2)&&(b15!=new JButton(img7)))
{
contador++;
ImageIcon img7 = createImageIcon("img7.jpg");
b15.setIcon(img7);
JPanel msgs = new JPanel();
JOptionPane.showMessageDialog(msgs,""+contador);
}
}
if(acao=="b16")
{
if((contador<2)&&(b16!=new JButton(img8)))
{
contador++;
ImageIcon img8 = createImageIcon("img8.jpg");
b16.setIcon(img8);
JPanel msgs = new JPanel();
JOptionPane.showMessageDialog(msgs,""+contador);
}
}
//JPanel msgs=new JPanel();
//JOptionPane.showMessageDialog(msgs,"Passou o ciclo "+contador);
}
public static void main (String s[])
{
JFrame f = new JFrame();
f.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
f.setLocation(0,0);
f.setTitle ("Jogo");
jogo newContentPane = new jogo();
newContentPane.setLayout(new GridLayout (5,3));
f.setContentPane (newContentPane);
f.pack();
f.setVisible (true);
}
}