我試圖初始化一個對象的二維數組,我創建了一個具有一些參數(x,y,寬度,高度)但不起作用的對象...該對象只是一個g。 fillOval,當我做初始化時只打印數組的最後一個對象。如何初始化創建的對象的二維數組?
Ovals = new Oval[4][4];
for (int y = 0; y < 4; y++) {
for (int x = 0; x < 4; x++) {
Ovals[x][y] = new Oval(x*100, y, 30,30);
}
}
...
for (int y = 0; y < 4; y++) {
for (int x = 0; x < 4; x++) {
Ovals[x][y].paint(g);
}
}
橢圓形類:
package objectes;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;
import java.util.Random;
public class Oval extends Canvas{
private static Random random;
private static int r1 = 0;
private static int r2 = 0;
private static int x = 0;
private static int y = 0;
private static int randomN = 5;
public static int color; //0 = red(#FF5C5C), 1 = blue(#4097ED), 2 = green(#65EB8F), 3 = yellow(#F5F267), 4 = orange(#FFAD42)
public Oval(int x, int y, int r1, int r2) {
//Constructor
this.x = x;
this.y = y;
this.r1 = r1;
this.r2 = r2;
random = new Random();
randomN = random.nextInt();
if (randomN < 0) {
randomN = randomN*-1;
}
randomN = randomN % 5;
}
public void paint(Graphics g) {
switch (randomN) {
case 0:
g.setColor(Color.decode("#ff5C5C"));
break;
case 1:
g.setColor(Color.decode("#4097ed"));
break;
case 2:
g.setColor(Color.decode("#65eb8f"));
break;
case 3:
g.setColor(Color.decode("#f5f267"));
break;
case 4:
g.setColor(Color.decode("#ffad42"));
break;
}
g.fillOval(x, y, r1, r2);
}
}
你所有的領域都是靜態的。那就是問題所在。這與數組無關...... –