私は基本的な抽象クラスを持っています:
abstract class Graphic
{
abstract void draw(Graphics g);
}
要素を特定のグループにグループ化するのに役立つ Group クラスがあります。この Group クラスは、それ自体の中に他の Group 要素を持つことができることに注意してください。
class Group extends Graphic
{
private ArrayList<Graphic> children = new ArrayList<Graphic>();
public ArrayList<Graphic> getChildren()
{
return children;
}
public void setChildren(ArrayList<Graphic> children)
{
this.children = children;
}
public void draw(Graphics g)
{
for(Graphic child:children)
{
child.draw(g);
}
}
}
これも Graphic を拡張する line クラスです。
class Line extends Graphic {
private Point startPoint = new Point(0,0);
private Point endPoint = new Point(1,1);
public void draw(Graphics g)
{
g.drawLine(startPoint.x, startPoint.y, endPoint.x, cendPoint.y);
}
}
Line 要素または別の Group 要素を Group クラスの子リストに追加できます。つまり、グループをグループ化でき、これらのグループにも独自のグループを含めることができ、すべてのグループにも line 要素を含めることができますが、子が要素はグループまたはラインです。要素がグループか線かを判断するにはどうすればよいですか?