【发布时间】:2026-02-12 13:05:01
【问题描述】:
在我正在做的这个程序中,我需要能够用随机颜色填充形状。我对如何实际填充形状感到困惑。我能够生成随机颜色。我在网上四处查看,发现一些消息来源谈论实现Paint 接口并在您希望绘制的形状上使用setPaint() 方法,然后调用fill 方法。我试过这个但没有成功。也许我只是弄错了。这就是我所拥有的。
Random rand = new Random();
float r = rand.nextFloat();
float g = rand.nextFloat();
float b = rand.nextFloat();
Color randomColor = new Color (r, g, b);
这是在一个超类的构造函数中,我实际上将randomColor 作为该类的属性。因此,为了访问子类中的那个元素,我提供了一个基本的 getter,它只返回颜色。
在子类中我有这个:
Rectangle2D.Double rectangle = new Rectangle2D.Double(getX(), getY(), getWidth(), height);
rectangle.setPaint(getColor());
rectangle.fill();
g2.draw(rectangle);
我得到的错误是关于类型转换rectangle 但我尝试的任何类型转换都不起作用。我不确定如何解决这个问题。有任何想法吗?或者有没有更简单/更好的方法来填充随机颜色的形状?谢谢。
【问题讨论】:
-
rand.nextInt(256);不是更有意义吗? -
类型转换与随机颜色无关。向我们展示您得到的确切错误以及其中的代码。