Comparação de JLabel

Olá!

Estou fazendo um aplicativo de domino e tenho um array de JLabels do tipo ImageIcon e gostaria de comparar com todos os elementos desse array um Component que viesse atraves do MouseListener.

Fiz um pequeno exemplo abaixo para simplificar o que eu gostaria q funcionasse.

No caso abaixo, a pedra que esta a OESTE do frame teria que ficar invisivel pois ela é igual a pedra comparada a b(que é o componente pego pelo mouse).

Espero ter sido claro.

Desde já agradeço a todos.

package interfaces;

import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.ImageIcon;

import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;
import java.awt.BorderLayout;

public class TestaEventos extends JFrame {
	
	JLabel imagem; // Imagens que serão criadas   
	JLabel imagem1; // Imagem que será comparada ás outras
	
	public TestaEventos() {
		setLayout(new BorderLayout());
		initComponents();
	}
	
	public void initComponents() {
// Cria a imagem1 que será comparada a todas as outras   
		String caminho = "images/Pedra03p.gif";
		ImageIcon icone = new ImageIcon(caminho);
		imagem1 = new JLabel(icone);

// Cria as demais pedras e seus ouvintes   		
		caminho = "images/Pedra00p.gif";
		icone = new ImageIcon(caminho);
		imagem = new JLabel(icone);
		add(imagem, BorderLayout.NORTH);
		
		imagem.addMouseListener(
				new MouseAdapter() {
					public void mouseClicked(MouseEvent e) {
						JLabel b = (JLabel) e.getComponent();
						if (testaIgual(b) == true)
							b.setVisible(false);
					}
				}
		);
			
		caminho = "images/Pedra01p.gif";
		icone = new ImageIcon(caminho);
		imagem = new JLabel(icone);
		add(imagem, BorderLayout.SOUTH);
		
		imagem.addMouseListener(
			new MouseAdapter() {
				public void mouseClicked(MouseEvent e) {
					JLabel b = (JLabel) e.getComponent();
					if (testaIgual(b) == true)
						b.setVisible(false);
				}
			}
		);
		
		caminho = "images/Pedra02p.gif";
		icone = new ImageIcon(caminho);
		imagem = new JLabel(icone);
		add(imagem, BorderLayout.EAST);
				
		imagem.addMouseListener(
			new MouseAdapter() {
				public void mouseClicked(MouseEvent e) {
					JLabel b = (JLabel) e.getComponent();
					if (testaIgual(b) == true)
						b.setVisible(false);
				}
			}
		);
		
		caminho = "images/Pedra03p.gif";
		icone = new ImageIcon(caminho);
		imagem = new JLabel(icone);
		add(imagem, BorderLayout.WEST);
		
		imagem.addMouseListener(
				new MouseAdapter() {
					public void mouseClicked(MouseEvent e) {
						JLabel b = (JLabel) e.getComponent();
						if (testaIgual(b) == true)
							b.setVisible(false);
					}
				}
		);
	}
	
	public boolean testaIgual(JLabel b) {
		boolean resultado = false;
// Compara todas as outras imagens com a imagem1
		if (b.equals(imagem1))
			resultado = true;
		return resultado;
	}
	
	public static void main(String[] args) {
		TestaEventos f = new TestaEventos();
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.setSize(400, 400);
		f.setLocationRelativeTo(null);
		f.setTitle("Teste de eventos");
		f.setVisible(true);
	}

}

Não dá para vc comparar da forma que vc tá tentando, ou vc está tentando comparar pelo nomes/caminhos das imagens(que seria só fazer o equals das Strings dos caminhos)?Se for pela figura, busque por BufferedImage e compare pixel a pixel.Ou PixelGrabber(Não sei se o nome é esse, é algo parecido)

Voce poderia por favor me dar um exemplo de como fazer um BufferedImage pois essa classe é nova para mim.

Dei uma lida na api do java mas nao consegui resolver o problema.

Grato!

Como seu conjunto de objetos é fíxo, esse é um dos poucos casos que uma comparação com == seria confiável, e muito mais rápida do que o equals da BufferedImage.