在draw方法中设置随机颜色

时间:2014-04-25 07:53:15

标签: java random colors

好的,这是一个用随机颜色绘制的形状,但我喜欢这种形状,以便在重新绘制时保持这种颜色。现在使用这种绘制方法,它只是每repaint()绘制一个新的随机颜色,所以它看起来像彩虹形状。如何让它抓取随机颜色然后坚持使用那个特定的形状?

public void draw(Graphics g) {
    g.setColor(new Color(randomNum.nextInt(256), randomNum.nextInt(256), randomNum.nextInt(256)));
    g.fillOval((int)getX(),(int)getY(), getRadius(), getRadius());

}

2 个答案:

答案 0 :(得分:1)

通过保存您正在绘制的颜色。 因此,您只需随机生成一次,然后每次都使用该颜色重新绘制。

在绘制之前生成它,如Color c = new Color(randomNum.nextInt(256), randomNum.nextInt(256), randomNum.nextInt(256));或仅生成变量并测试它是否已在draw方法中初始化。如果它没有(第一次运行你的代码),你会生成一个随机颜色,如果它已经初始化,你只需跳过生成颜色并直接进入你的g.fillOval

答案 1 :(得分:1)

您保留一份形状列表。每个形状都有他的颜色和半径。

重绘时,绘制列表中的每个形状。

static class OvalShape {Color color; int radius;}
List<OvalShape> shapeList = new ArrayList<>();

public void draw(Graphics g) {
    for(Shape s : shapeList) {
        g.setColor(s.color);
        g.fillOval((int)getX(),(int)getY(), s.radius, s.radius);
    }
}