我希望使用Rectangle
对象创建多个矩形。
这是我到目前为止所做的:
public void paint(Graphics g) {
super.paint(g);
for(int x = 0; x<= cars.size()-1; x++)
{
Rectangle r = new Rectangle();
r.setBounds((int) cars.get(x).getX(), (int) cars.get(x).getDistance(), 10, 20);
g.fillRect( (int) r.getCenterX(), (int) r.getCenterY(), (int) r.getWidth(), (int) r.getHeight());
}
}
我需要Rectangle对象,所以我可以用它来检测与另一辆车的碰撞。以上绘制了矩形&#34;汽车&#34;。我需要的是另一个较小的矩形,但颜色不同。所以我也想把颜色融入其中。有什么想法吗?
答案 0 :(得分:1)
只需向Color
课程添加Car
属性。
您应该避免覆盖paint
方法,而是使用paintComponent
,请查看Performing Custom Painting了解详情
如果你要覆盖顶级容器的paint
,那么你真的应该将绘画转移到像JPanel
这样的东西,如果没有其他原因,它会被双重缓冲。
答案 1 :(得分:0)
嗯,首先,每次需要一个矩形时,你可能不应该在渲染代码中调用new
。在类级别保留一些用户定义类型的List
,并维护它的单独实例。
class Foobar {
private List<Car> cars;
public Foobar() {
// create your cars, put them in the list
}
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
for (Car car : cars) {
g2d.setColor(car.color);
g2d.fill(car.rect);
}
}
}
class Car {
Rectangle rect;
Color color;
// constructors etc.
}