一种更简单的方法是创建一个扩展 javax.swing.panel 并覆盖 paintComponent() 方法的新类。
在新类的构造函数中传递对二维数组的引用。
在您覆盖的 paintComponent() 方法中执行以下操作:
public void paintComponent(Graphics g) {
for (int x=0;x<arrayWidth;x++) {
for (int y=0;y<arrayHight;y++) {
switch (array[x][y]) {
case 1: g.setColor(Color.RED);break;
case 2: g.setColor(Color.BLUE);break;
case 3: g.setColor(Color.GREEN);break;
case 4: g.setColor(Color.YELLOW);break;
}
g.drawRect(x*10,y*10,10,10);
}
}
}
只需根据您的需要调整数字和颜色即可。
编辑:如果您有某种不能在 switch 语句中使用的值(例如,旧 Java 版本中的自定义类或字符串),只需将其替换为 if/elseifs:
public void paintComponent(Graphics g) {
for (int x=0;x<arrayWidth;x++) {
for (int y=0;y<arrayHight;y++) {
if (array[x][y].equals(value1)) {
g.setColor(Color.RED);
} else if (array[x][y].equals(value2)) {
g.setColor(Color.BLUE);
} else if (array[x][y].equals(value3)) {
g.setColor(Color.GREEN);
} else {
g.setColor(Color.YELLOW);
}
g.drawRect(x*10,y*10,10,10);
}
}
}