Hallo zusammen,
ich habe folgendes Problem: Ich habe eine ArrayList<Shape> die Shapes verwaltet. Jetzt möchte ich in die Shapes alles zeichnen lassen und iterieren über alle Elemente der ArrayList. Wenn ich die Shapes aber zeichnen lassen möchte, musst ich zwischen Linien-Shapes und anderen Shapes unterscheiden. Bei ersten heißt es ja
Gibt es eine Möglichkeit herauszufinden, ob eine Shape eine Linie ist und damit draw benutzen muss oder eine geschlossenen Fläche und damit fill benutzen muss? Ich habe es halt über ein zusätzliches Attribut gelöst.
Das Ganze ist übrigens aus dem Examples-Ordner von BlueJ. Die Canvas-Klasse darin klappt in Bezug auf die Linie nicht.
Über Tipps und Anregungen wäre ich sehr dankbar,
Ingo
ich habe folgendes Problem: Ich habe eine ArrayList<Shape> die Shapes verwaltet. Jetzt möchte ich in die Shapes alles zeichnen lassen und iterieren über alle Elemente der ArrayList. Wenn ich die Shapes aber zeichnen lassen möchte, musst ich zwischen Linien-Shapes und anderen Shapes unterscheiden. Bei ersten heißt es ja
Java:
private class ShapeDescription
{
private Shape shape;
private String colorString;
private String description;
public ShapeDescription(Shape shape, String color, String description)
{
this.shape = shape;
colorString = color;
this.description = description;
}
public void draw(Graphics2D graphic)
{
setForegroundColor(colorString);
if (description.equals("Line")) {
graphic.draw(shape);
} else {
graphic.fill(shape);
}
}
}
Gibt es eine Möglichkeit herauszufinden, ob eine Shape eine Linie ist und damit draw benutzen muss oder eine geschlossenen Fläche und damit fill benutzen muss? Ich habe es halt über ein zusätzliches Attribut gelöst.
Das Ganze ist übrigens aus dem Examples-Ordner von BlueJ. Die Canvas-Klasse darin klappt in Bezug auf die Linie nicht.
Über Tipps und Anregungen wäre ich sehr dankbar,
Ingo