我想创建一个随机数,然后创建9个矩形,但其中一个会以不同的颜色,一个不同的颜色将根据随机数出来,所以我已经做到了,但代码太长了,我怎么能缩短它?随机和图形太长的代码
public void paint(Graphics g) {
rand = new Random();
n = rand.nextInt(9) + 1;
if (n == 1) {
g.setColor(Color.LIGHT_GRAY);
rec1 = new Rectangle(10, 130, 50, 50);
g.fillRect((int) rec1.getX(), (int) rec1.getY(),
(int) rec1.getWidth(), (int) rec1.getHeight());
g.setColor(Color.DARK_GRAY);
rec2 = new Rectangle(70, 130, 50, 50);
g.fillRect((int) rec2.getX(), (int) rec2.getY(),
(int) rec2.getWidth(), (int) rec2.getHeight());
rec3 = new Rectangle(130, 130, 50, 50);
g.fillRect((int) rec3.getX(), (int) rec3.getY(),
(int) rec3.getWidth(), (int) rec3.getHeight());
rec4 = new Rectangle(10, 70, 50, 50);
g.fillRect((int) rec4.getX(), (int) rec4.getY(),
(int) rec4.getWidth(), (int) rec4.getHeight());
rec5 = new Rectangle(70, 70, 50, 50);
g.fillRect((int) rec5.getX(), (int) rec5.getY(),
(int) rec5.getWidth(), (int) rec5.getHeight());
rec6 = new Rectangle(130, 70, 50, 50);
g.fillRect((int) rec6.getX(), (int) rec6.getY(),
(int) rec6.getWidth(), (int) rec6.getHeight());
rec7 = new Rectangle(10, 10, 50, 50);
g.fillRect((int) rec7.getX(), (int) rec7.getY(),
(int) rec7.getWidth(), (int) rec7.getHeight());
rec8 = new Rectangle(70, 10, 50, 50);
g.fillRect((int) rec8.getX(), (int) rec8.getY(),
(int) rec8.getWidth(), (int) rec8.getHeight());
rec9 = new Rectangle(130, 10, 50, 50);
g.fillRect((int) rec9.getX(), (int) rec9.getY(),
(int) rec9.getWidth(), (int) rec9.getHeight());
} else if (n == 2) {
rec1 = new Rectangle(10, 130, 50, 50);
g.fillRect((int) rec1.getX(), (int) rec1.getY(),
(int) rec1.getWidth(), (int) rec1.getHeight());
g.setColor(Color.LIGHT_GRAY);
rec2 = new Rectangle(70, 130, 50, 50);
g.fillRect((int) rec2.getX(), (int) rec2.getY(),
(int) rec2.getWidth(), (int) rec2.getHeight());
g.setColor(Color.DARK_GRAY);
rec3 = new Rectangle(130, 130, 50, 50);
g.fillRect((int) rec3.getX(), (int) rec3.getY(),
(int) rec3.getWidth(), (int) rec3.getHeight());
rec4 = new Rectangle(10, 70, 50, 50);
g.fillRect((int) rec4.getX(), (int) rec4.getY(),
(int) rec4.getWidth(), (int) rec4.getHeight());
rec5 = new Rectangle(70, 70, 50, 50);
g.fillRect((int) rec5.getX(), (int) rec5.getY(),
(int) rec5.getWidth(), (int) rec5.getHeight());
rec6 = new Rectangle(130, 70, 50, 50);
g.fillRect((int) rec6.getX(), (int) rec6.getY(),
(int) rec6.getWidth(), (int) rec6.getHeight());
rec7 = new Rectangle(10, 10, 50, 50);
g.fillRect((int) rec7.getX(), (int) rec7.getY(),
(int) rec7.getWidth(), (int) rec7.getHeight());
rec8 = new Rectangle(70, 10, 50, 50);
g.fillRect((int) rec8.getX(), (int) rec8.getY(),
(int) rec8.getWidth(), (int) rec8.getHeight());
rec9 = new Rectangle(130, 10, 50, 50);
g.fillRect((int) rec9.getX(), (int) rec9.getY(),
(int) rec9.getWidth(), (int) rec9.getHeight());
} else if (n == 3) {
rec1 = new Rectangle(10, 130, 50, 50);
g.fillRect((int) rec1.getX(), (int) rec1.getY(),
(int) rec1.getWidth(), (int) rec1.getHeight());
rec2 = new Rectangle(70, 130, 50, 50);
g.fillRect((int) rec2.getX(), (int) rec2.getY(),
(int) rec2.getWidth(), (int) rec2.getHeight());
g.setColor(Color.LIGHT_GRAY);
rec3 = new Rectangle(130, 130, 50, 50);
g.fillRect((int) rec3.getX(), (int) rec3.getY(),
(int) rec3.getWidth(), (int) rec3.getHeight());
g.setColor(Color.DARK_GRAY);
rec4 = new Rectangle(10, 70, 50, 50);
g.fillRect((int) rec4.getX(), (int) rec4.getY(),
(int) rec4.getWidth(), (int) rec4.getHeight());
rec5 = new Rectangle(70, 70, 50, 50);
g.fillRect((int) rec5.getX(), (int) rec5.getY(),
(int) rec5.getWidth(), (int) rec5.getHeight());
rec6 = new Rectangle(130, 70, 50, 50);
g.fillRect((int) rec6.getX(), (int) rec6.getY(),
(int) rec6.getWidth(), (int) rec6.getHeight());
rec7 = new Rectangle(10, 10, 50, 50);
g.fillRect((int) rec7.getX(), (int) rec7.getY(),
(int) rec7.getWidth(), (int) rec7.getHeight());
rec8 = new Rectangle(70, 10, 50, 50);
g.fillRect((int) rec8.getX(), (int) rec8.getY(),
(int) rec8.getWidth(), (int) rec8.getHeight());
rec9 = new Rectangle(130, 10, 50, 50);
g.fillRect((int) rec9.getX(), (int) rec9.getY(),
(int) rec9.getWidth(), (int) rec9.getHeight());
} else if (n == 4) {
rec1 = new Rectangle(10, 130, 50, 50);
g.fillRect((int) rec1.getX(), (int) rec1.getY(),
(int) rec1.getWidth(), (int) rec1.getHeight());
rec2 = new Rectangle(70, 130, 50, 50);
g.fillRect((int) rec2.getX(), (int) rec2.getY(),
(int) rec2.getWidth(), (int) rec2.getHeight());
rec3 = new Rectangle(130, 130, 50, 50);
g.fillRect((int) rec3.getX(), (int) rec3.getY(),
(int) rec3.getWidth(), (int) rec3.getHeight());
g.setColor(Color.LIGHT_GRAY);
rec4 = new Rectangle(10, 70, 50, 50);
g.fillRect((int) rec4.getX(), (int) rec4.getY(),
(int) rec4.getWidth(), (int) rec4.getHeight());
g.setColor(Color.DARK_GRAY);
rec5 = new Rectangle(70, 70, 50, 50);
g.fillRect((int) rec5.getX(), (int) rec5.getY(),
(int) rec5.getWidth(), (int) rec5.getHeight());
rec6 = new Rectangle(130, 70, 50, 50);
g.fillRect((int) rec6.getX(), (int) rec6.getY(),
(int) rec6.getWidth(), (int) rec6.getHeight());
rec7 = new Rectangle(10, 10, 50, 50);
g.fillRect((int) rec7.getX(), (int) rec7.getY(),
(int) rec7.getWidth(), (int) rec7.getHeight());
rec8 = new Rectangle(70, 10, 50, 50);
g.fillRect((int) rec8.getX(), (int) rec8.getY(),
(int) rec8.getWidth(), (int) rec8.getHeight());
rec9 = new Rectangle(130, 10, 50, 50);
g.fillRect((int) rec9.getX(), (int) rec9.getY(),
(int) rec9.getWidth(), (int) rec9.getHeight());
} else if (n == 5) {
rec1 = new Rectangle(10, 130, 50, 50);
g.fillRect((int) rec1.getX(), (int) rec1.getY(),
(int) rec1.getWidth(), (int) rec1.getHeight());
rec2 = new Rectangle(70, 130, 50, 50);
g.fillRect((int) rec2.getX(), (int) rec2.getY(),
(int) rec2.getWidth(), (int) rec2.getHeight());
rec3 = new Rectangle(130, 130, 50, 50);
g.fillRect((int) rec3.getX(), (int) rec3.getY(),
(int) rec3.getWidth(), (int) rec3.getHeight());
rec4 = new Rectangle(10, 70, 50, 50);
g.fillRect((int) rec4.getX(), (int) rec4.getY(),
(int) rec4.getWidth(), (int) rec4.getHeight());
g.setColor(Color.LIGHT_GRAY);
rec5 = new Rectangle(70, 70, 50, 50);
g.fillRect((int) rec5.getX(), (int) rec5.getY(),
(int) rec5.getWidth(), (int) rec5.getHeight());
g.setColor(Color.DARK_GRAY);
rec6 = new Rectangle(130, 70, 50, 50);
g.fillRect((int) rec6.getX(), (int) rec6.getY(),
(int) rec6.getWidth(), (int) rec6.getHeight());
rec7 = new Rectangle(10, 10, 50, 50);
g.fillRect((int) rec7.getX(), (int) rec7.getY(),
(int) rec7.getWidth(), (int) rec7.getHeight());
rec8 = new Rectangle(70, 10, 50, 50);
g.fillRect((int) rec8.getX(), (int) rec8.getY(),
(int) rec8.getWidth(), (int) rec8.getHeight());
rec9 = new Rectangle(130, 10, 50, 50);
g.fillRect((int) rec9.getX(), (int) rec9.getY(),
(int) rec9.getWidth(), (int) rec9.getHeight());
} else if (n == 6) {
rec1 = new Rectangle(10, 130, 50, 50);
g.fillRect((int) rec1.getX(), (int) rec1.getY(),
(int) rec1.getWidth(), (int) rec1.getHeight());
rec2 = new Rectangle(70, 130, 50, 50);
g.fillRect((int) rec2.getX(), (int) rec2.getY(),
(int) rec2.getWidth(), (int) rec2.getHeight());
rec3 = new Rectangle(130, 130, 50, 50);
g.fillRect((int) rec3.getX(), (int) rec3.getY(),
(int) rec3.getWidth(), (int) rec3.getHeight());
rec4 = new Rectangle(10, 70, 50, 50);
g.fillRect((int) rec4.getX(), (int) rec4.getY(),
(int) rec4.getWidth(), (int) rec4.getHeight());
rec5 = new Rectangle(70, 70, 50, 50);
g.fillRect((int) rec5.getX(), (int) rec5.getY(),
(int) rec5.getWidth(), (int) rec5.getHeight());
g.setColor(Color.LIGHT_GRAY);
rec6 = new Rectangle(130, 70, 50, 50);
g.fillRect((int) rec6.getX(), (int) rec6.getY(),
(int) rec6.getWidth(), (int) rec6.getHeight());
g.setColor(Color.DARK_GRAY);
rec7 = new Rectangle(10, 10, 50, 50);
g.fillRect((int) rec7.getX(), (int) rec7.getY(),
(int) rec7.getWidth(), (int) rec7.getHeight());
rec8 = new Rectangle(70, 10, 50, 50);
g.fillRect((int) rec8.getX(), (int) rec8.getY(),
(int) rec8.getWidth(), (int) rec8.getHeight());
rec9 = new Rectangle(130, 10, 50, 50);
g.fillRect((int) rec9.getX(), (int) rec9.getY(),
(int) rec9.getWidth(), (int) rec9.getHeight());
} else if (n == 7) {
rec1 = new Rectangle(10, 130, 50, 50);
g.fillRect((int) rec1.getX(), (int) rec1.getY(),
(int) rec1.getWidth(), (int) rec1.getHeight());
rec2 = new Rectangle(70, 130, 50, 50);
g.fillRect((int) rec2.getX(), (int) rec2.getY(),
(int) rec2.getWidth(), (int) rec2.getHeight());
rec3 = new Rectangle(130, 130, 50, 50);
g.fillRect((int) rec3.getX(), (int) rec3.getY(),
(int) rec3.getWidth(), (int) rec3.getHeight());
rec4 = new Rectangle(10, 70, 50, 50);
g.fillRect((int) rec4.getX(), (int) rec4.getY(),
(int) rec4.getWidth(), (int) rec4.getHeight());
rec5 = new Rectangle(70, 70, 50, 50);
g.fillRect((int) rec5.getX(), (int) rec5.getY(),
(int) rec5.getWidth(), (int) rec5.getHeight());
rec6 = new Rectangle(130, 70, 50, 50);
g.fillRect((int) rec6.getX(), (int) rec6.getY(),
(int) rec6.getWidth(), (int) rec6.getHeight());
g.setColor(Color.LIGHT_GRAY);
rec7 = new Rectangle(10, 10, 50, 50);
g.fillRect((int) rec7.getX(), (int) rec7.getY(),
(int) rec7.getWidth(), (int) rec7.getHeight());
g.setColor(Color.DARK_GRAY);
rec8 = new Rectangle(70, 10, 50, 50);
g.fillRect((int) rec8.getX(), (int) rec8.getY(),
(int) rec8.getWidth(), (int) rec8.getHeight());
rec9 = new Rectangle(130, 10, 50, 50);
g.fillRect((int) rec9.getX(), (int) rec9.getY(),
(int) rec9.getWidth(), (int) rec9.getHeight());
} else if (n == 8) {
rec1 = new Rectangle(10, 130, 50, 50);
g.fillRect((int) rec1.getX(), (int) rec1.getY(),
(int) rec1.getWidth(), (int) rec1.getHeight());
rec2 = new Rectangle(70, 130, 50, 50);
g.fillRect((int) rec2.getX(), (int) rec2.getY(),
(int) rec2.getWidth(), (int) rec2.getHeight());
rec3 = new Rectangle(130, 130, 50, 50);
g.fillRect((int) rec3.getX(), (int) rec3.getY(),
(int) rec3.getWidth(), (int) rec3.getHeight());
rec4 = new Rectangle(10, 70, 50, 50);
g.fillRect((int) rec4.getX(), (int) rec4.getY(),
(int) rec4.getWidth(), (int) rec4.getHeight());
rec5 = new Rectangle(70, 70, 50, 50);
g.fillRect((int) rec5.getX(), (int) rec5.getY(),
(int) rec5.getWidth(), (int) rec5.getHeight());
rec6 = new Rectangle(130, 70, 50, 50);
g.fillRect((int) rec6.getX(), (int) rec6.getY(),
(int) rec6.getWidth(), (int) rec6.getHeight());
rec7 = new Rectangle(10, 10, 50, 50);
g.fillRect((int) rec7.getX(), (int) rec7.getY(),
(int) rec7.getWidth(), (int) rec7.getHeight());
g.setColor(Color.LIGHT_GRAY);
rec8 = new Rectangle(70, 10, 50, 50);
g.fillRect((int) rec8.getX(), (int) rec8.getY(),
(int) rec8.getWidth(), (int) rec8.getHeight());
g.setColor(Color.DARK_GRAY);
rec9 = new Rectangle(130, 10, 50, 50);
g.fillRect((int) rec9.getX(), (int) rec9.getY(),
(int) rec9.getWidth(), (int) rec9.getHeight());
} else {
rec1 = new Rectangle(10, 130, 50, 50);
g.fillRect((int) rec1.getX(), (int) rec1.getY(),
(int) rec1.getWidth(), (int) rec1.getHeight());
rec2 = new Rectangle(70, 130, 50, 50);
g.fillRect((int) rec2.getX(), (int) rec2.getY(),
(int) rec2.getWidth(), (int) rec2.getHeight());
rec3 = new Rectangle(130, 130, 50, 50);
g.fillRect((int) rec3.getX(), (int) rec3.getY(),
(int) rec3.getWidth(), (int) rec3.getHeight());
rec4 = new Rectangle(10, 70, 50, 50);
g.fillRect((int) rec4.getX(), (int) rec4.getY(),
(int) rec4.getWidth(), (int) rec4.getHeight());
rec5 = new Rectangle(70, 70, 50, 50);
g.fillRect((int) rec5.getX(), (int) rec5.getY(),
(int) rec5.getWidth(), (int) rec5.getHeight());
rec6 = new Rectangle(130, 70, 50, 50);
g.fillRect((int) rec6.getX(), (int) rec6.getY(),
(int) rec6.getWidth(), (int) rec6.getHeight());
rec7 = new Rectangle(10, 10, 50, 50);
g.fillRect((int) rec7.getX(), (int) rec7.getY(),
(int) rec7.getWidth(), (int) rec7.getHeight());
rec8 = new Rectangle(70, 10, 50, 50);
g.fillRect((int) rec8.getX(), (int) rec8.getY(),
(int) rec8.getWidth(), (int) rec8.getHeight());
g.setColor(Color.LIGHT_GRAY);
rec9 = new Rectangle(130, 10, 50, 50);
g.fillRect((int) rec9.getX(), (int) rec9.getY(),
(int) rec9.getWidth(), (int) rec9.getHeight());
}
}
新代码::
private static void drawRectangle(Graphics g, int column, int row,
Color color) {
g.setColor(color);
g.fillRect(column * 60 + 10, row * 60 + 10, 50, 50);
n = rand.nextInt(9);
for (row = 0; row < 3; row++) {
for (column = 0; column < 3; column++) {
drawRectangle(g, column, row,
n == row * 3 + column ? Color.LIGHT_GRAY
: Color.DARK_GRAY);
}
}
}
你知道循环和数组吗? –
创建8个矩形。之后检查随机数。这样你只能为任何可能的情况创建一个矩形。或者您可以创建9并为该案例设置填充颜色。 –
事后你确实需要'Rectangle'对象吗? –