好的,这是一个用随机颜色绘制的形状,但我喜欢这种形状,以便在重新绘制时保持这种颜色。现在使用这种绘制方法,它只是每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());
}
答案 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);
}
}