セルで構成された 10 x 10 グリッドの Java ゲームを作成しようとしています。グリッドは次のようになります。
public class Grid extends JPanel implements MouseListener {
    public static final int GRID_SIZE = 10;
    public Grid() {
        setPreferredSize(new Dimension(300, 300));
        setLayout(new GridLayout(GRID_SIZE, GRID_SIZE));
        for (int x = 0; x < GRID_SIZE; x++)
            for (int y = 0; y < GRID_SIZE; y++)
                add(new Cell(x, y));
        addMouseListener(this);
    }
// All Mouse Listener methods are in here.
Cell クラスは次のようになります。
public class Cell extends JPanel {
    public static final int CELL_SIZE = 1;
    private int xPos;
    private int yPos;
    public Cell (int x, int y) {
        xPos = x;
        yPos = y;
        setOpaque(true);
        setBorder(BorderFactory.createBevelBorder(CELL_SIZE));
        setBackground(new Color(105, 120, 105));
        setPreferredSize(new Dimension(CELL_SIZE, CELL_SIZE));
    }
    // Getter methods for x and y.
私の問題は、現在、Grid クラスに MouseListeners を実装しようとしていることです。私が気付いたのは、グリッドの X 座標と Y 座標を返すことはできますが、セル自体を操作することはできないようです。これは、グリッドでそれらを作成したときに、識別子なしで 100 個のランダムなセルを作成しているため、それらに直接アクセスする方法がないためだと想定しています。
誰か私にこれについてアドバイスをもらえますか? コードとセルの作成方法をオーバーホールする必要がありますか? 私はひどく愚かで、それらにアクセスする明白な方法を見逃していますか? ありがとう