在JAVA中创建多个矩形

时间:2013-11-21 04:00:07

标签: java

我希望使用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;。我需要的是另一个较小的矩形,但颜色不同。所以我也想把颜色融入其中。有什么想法吗?

2 个答案:

答案 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.
}