我正在尝试创建一个由单元格组成的 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 坐标,但我似乎无法操纵单元格本身。我假设这是因为当我在 Grid 中创建它们时,我正在创建 100 个没有标识符的随机单元格,因此我无法直接访问它们。
有人可以给我建议吗?我是否需要彻底检查我的代码和创建单元的方式?我是否非常愚蠢并且错过了访问它们的明显方式?谢谢