Allora intanto grazie per la risposta , dopo aver smanettato due ore cerco di mettere quello a cui sono arrivato.

Innanzitutto le JLabel/JButton servirebbero solo come pulsanti per inserire pedine nel campo di gioco,quindi l'unica cosa che mi interessa è poter distinguere su quale colonna il giocatore vuole inserire la pedina.

Per ora ho usato JButton perchè per poterli distinguere uso il metodo get/setActionCommand() che JButton eredita da JAbstractButton mentre JLabel non ha,ma se posso fare altrimenti ben venga,visto che risparmierei il metodo per "pulire" il bottone.

Metto quello a cui sono arrivato:

codice:
//Qui siamo nella classe di gestione del JFrame metto solo la parte del costruttore del frame interessata
pulsanti=new JButton[8];
.................................
Opzioni o=new Opzioni();
for(int i=0;i<8;i++)
{
	JButton b=new JButton(new ImageIcon("img....."));
	b.setPreferredSize(new Dimension(50,50));
	pulsanti[i]=pulisciBottone(b);
	pulsanti[i].setActionCommand(""+i); //uso questo metodo per riconoscere i bottoni
	pulsanti[i].addMouseListener(o);
	ovest.add(pulsanti[i]);
}
public static JButton pulisciBottone(JButton b)
{
	b.setFocusPainted(false);
        b.setMargin(new Insets(0,0,0,0));
	b.setContentAreaFilled(false);
        b.setBorderPainted(false);
        b.setOpaque(false);
	return b;
}
E per la gestione degli eventi :

codice:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Opzioni implements MouseListener
{	
	public void mouseClicked(MouseEvent e)
	{
		JButton b=(JButton)e.getComponent();
		System.out.print("\nMouse cliccato su "+b.getActionCommand());
	}
	public void mouseEntered(MouseEvent e)
	{
		JButton b=(JButton)e.getComponent();
		System.out.print("\nMouse entrato su "+b.getActionCommand());
	}
	public void mouseExited(MouseEvent e){}
	public void mouseReleased(MouseEvent e){}
	public void mousePressed(MouseEvent e){}
}

Immagino che possa fare schifo l'uso di variabili e metodi statici ma sono troppo abituato

Per quanto riguarda la tua ultima parte di risposta parli di "logica applicativa" con flag e altro , mi spiegheresti meglio cosa intendi?