Olah , prometi ajudar e hoje aqui estou.
Em anexo coloquei um projetinho que fiz, soh o basico para vc entender.
O negocio eh o seguinte.
O invés de instanciar JButtons e quadrado e ficar tentando emparceiras cada um deles para ver esse foi clicado ou aquele foi clicado, usei Orientacao a Objetos.
Criei a classe Quadrado que extende JButton (explicando, caso nao saiba) Quadrado eh a tua classe mas ele herda (recebe automaticamente) todos os metodos de JButton, ou seja eh um botao como qualquer outro do swing, apenas eh tbm um Quadrado que pode ter uma bomba, e pode mostrar uma bandeira.
Tbm criei uma classe de tela. Inseri um monte de botoes nela (JButton) por que é isso que eu posso usar graficamente.
Daí usei o personalizar codigo de cada um dos botoes e troquei a inicializacao dele por um Quadrado. Ou seja cada JButton passa a ser um Quadrado e conter as informacoes que eu quiser colocar nele usando os sets e gets que criei para assinalar que tem bomba ou bandeira.
Ainda na tela fiz um atributo criando um array de quadrados, apenas para caso eu precise sortear um Quadrado onde colocar minhas bombas.
E usei um metodo para ligar cada elemento do array com o meu botao fisico que ja esta instanciado como um quadrado. Pronto agora eu posso usar o array de Quadrados para sortear onde colocar as bombas.
Agora vem a questao dos eventos.
Ao inves de colocar os eventos em cada botao da Tela. Eu coloque apenas na classe Quadrado. Entao quando eu clico num botao na tela. Ela aciona o evento daquele botao e verifica se foi clicado com a direita ou nao.
Eh bem simples de fato, mas voce pode melhor muito a classe quadrado e fazer tudo que voce precisar.
Pode por exemplo criar em cada classe quadrado um array de 8 quadrados que seriam os seus adjacentes e ligar cada um deles. Assim, por exemplo, quando voce quisesse contar quantas bombas tem nas casas adjacentes bastaria passar esse array acumulando os isBombas de cada um.
Fica tudo mais facil assim. Por que vc organiza melhor. Quadrado cuida de suas coisas. A classe tela não precisa ficar correndo o array de quadrados para ver se foi ou nao foi clicado em um botao. Quando clicou eh naquele botao que o evento serah disparado.
Se nao tiver entendido algo me fale, tento explicar melhor. Explicar eh o que faco melhor, pelo menos eh o que os meus alunos me dizem. Bando de puxa-sacos. kkkkk
abs