Olá amigos!
No meu programa eu criei 7 JLabels dessa forma:
for (int i = 0; i < domino.retornaJogador(0).retornaNumeroDePedras(); i++) {
String nome = String.format("images/Pedra%d%dp.gif", domino.retornaJogador(0).retornaListaDePedras().retorna(i).retornaLadoA(), domino.retornaJogador(0).retornaListaDePedras().retorna(i).retornaLadoB());
ImageIcon pedra = new ImageIcon(nome);
JLabel imagem = new JLabel(pedra);
c.insets = new Insets(3, 3, 3, 3);
c.gridx = i;
layout.setConstraints(imagem, c);
painelPedras.setLayout(layout);
painelPedras.add(imagem);
}
E adicionei todas em um JPanel chamado painelPedras.
Criei tambem os ouvintes para todas essas pedras desse modo:
for (int i = 0; i < painelPedras.getComponentCount(); i++) {
painelPedras.getComponent(i).addMouseListener(new Ouvinte());
}
painelPedras.revalidate();
painelPedras.repaint();
Criei uma classe para Administrar esses “ouvintes” desta forma:
private class Ouvinte extends MouseAdapter {
public void mouseClicked(MouseEvent e) {
if (testaEncaixa(e.getComponent()) == true)
e.getComponent().setVisible(false);
}
}
O Problema é o seguinte!
No teste acima do testaEncaixa(e.getComponent()) ele sempre manda o primeiro item do painelMesa, independente se clicou nos outros. O teste é sempre feito com o primeiro.
Gostaria de saber onde estou errado.
Por favor espero resposta. Desde ja agradeço a atençao.
Abraços