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);
}
}