我正在用 java 制作康威的生命游戏程序,并试图将其从命令行版本更改为 GUI。从命令行我刚刚打印了一个显示世代的数组(块和闪烁器等对象显示为一系列 1 和 0,其中它是空白的,在 GUI 中我将它显示为正方形(白色正方形作为空白和蓝色方块,它不是)。但是我遇到困难的地方是当我制作另一种方法(它替换打印数组的方法)检查网格数组时,如果有一个零,那么正方形从白色到蓝色,反之亦然。康威的生活规则在一个独立的类中处理,这个方法所做的只是在规则改变了数组之后,这个方法检查它。
规则在一个类的方法中完成,而 GUI 组件在另一个类中完成。但是因为我需要两个实例,我将如何去做呢?,合并这两个类(所有的 GUI 类到 Life 类中,如何嵌入它们,我完全不知道该怎么做
public void runGUI() {
int x = getX(), y = getY();
x /= squareSize;
y /= squareSize;
for (int i = 0; i < LifeData.grid.length; i++) {
for (int j = 0; j < LifeData.grid[i].length; j++) {
if (LifeData.grid[i][j] == 0)
l.setCell(x, y, l.getCell(x, y) + 1);
else
l.setCell(x, y, l.getCell(x, y) - 1);
this.repaint();
}
}
}
这就是我现在将其更改为的内容,但是在编译时它说“grid
不能从静态上下文引用非静态变量”和“不能从静态上下文引用非静态方法runGUI()
”。尝试运行该方法时。