私は、シェイプ(長方形と楕円)のArrayListを持っており、これらのシェイプをペイントしたいと思います。 forループでの色で塗りつぶすにはどうすればいいですか?Java:色でArrayListからシェイプを塗りつぶす方法は?
My ArrayListは、長方形と楕円の両方で構成されています。 fillRect(color)を行うと、すべての図形が四角形としてペイントされ、fillOval(color)を実行すると、すべての図形が楕円形にペイントされます。どのように楕円と四角形を適切に埋めることができますか?以下のコードはアウトラインのみを示しています。
private ArrayList<Shape> shapes = new ArrayList<Shape>();
private Shape currentShape; // the shape being drawn (either Rectangle or Oval)
public void paintComponent(Graphics g) {
super.paintComponent(g);
for(Shape s : shapes) {
Graphics2D g2d = (Graphics2D) g.create();
s.paint(g2d);
}
}
あなたの 'Shape'がArrayListに保持されているという事実は完全に無関係です。あなたの質問は本当に「シェイプを色で塗る方法」です。 –
'Graphics2D g2d =(Graphics2D)g.create();'はループの外に**あるはずです。 –