Package schule.ngb.zm

Class BasicDrawable

java.lang.Object
schule.ngb.zm.Constants
schule.ngb.zm.BasicDrawable
All Implemented Interfaces:
Drawable, Fillable, Strokeable
Direct Known Subclasses:
Shape, TurtleLayer.Turtle

public abstract class BasicDrawable extends Constants implements Strokeable, Fillable
Basisimplementierung der Strokeable und Fillable APIs. Die Klasse bietet eine Grundlage zur Implementierung eigener Zeichenobjekte, die eine Füllung und eine Konturlinie haben können.
  • Field Details

    • visible

      protected boolean visible
      Ob das Objekt gezeichnet werden soll.
    • strokeColor

      protected Color strokeColor
      Aktuelle Farbe der Konturlinie oder null, wenn das Objekt ohne Kontur dargestellt werden soll.
    • strokeWeight

      protected double strokeWeight
      Die Dicke der Konturlinie. Wird nicht kleiner als 0.
    • strokeType

      protected Options.StrokeType strokeType
      Die Art der Konturlinie.
    • stroke

      protected Stroke stroke
      Cache für den aktuellen Stroke der Kontur. Wird nach Änderung einer der Kontureigenschaften auf null gesetzt und beim nächsten Zeichnen neu erstellt.
    • fillColor

      protected Color fillColor
      Die aktuelle Füllfarbe der Form oder null, wenn das Objekt nicht gefüllt werden soll.
    • fill

      protected MultipleGradientPaint fill
      Der aktuelle Farbverlauf des Objektes oder null, wenn es keinen Farbverlauf besitzt.
  • Constructor Details

    • BasicDrawable

      public BasicDrawable()
  • Method Details

    • isVisible

      public boolean isVisible()
      Ob das Objekt angezeigt bzw. gezeichnet werden soll.
      Specified by:
      isVisible in interface Drawable
      Returns:
      true, wenn das Objekt angezeigt werden soll, false sonst.
    • hide

      public void hide()
      Versteckt das Objekt.
    • show

      public void show()
      Zeigt das Objekt an.
    • toggle

      public void toggle()
      Versteckt da Objekt, wenn es derzeit angezeigt wird und zeigt es andernfalls an.
    • draw

      public abstract void draw(Graphics2D graphics)
      Description copied from interface: Drawable
      Wird aufgerufen, um das Objekt auf die Zeichenfläche graphics zu zeichnen.

      Das Objekt muss dafür Sorge tragen, dass der Zustand der Zeichenfläche (Transformationsmatrix, Farbe, ...) erhalten bleibt. Das Objekt sollte also etwaige Änderungen am Ende des Aufrufs wieder rückgängig machen.

      Specified by:
      draw in interface Drawable
      Parameters:
      graphics - Die Zeichenfläche.
    • setFill

      public void setFill(Paint fill)
      Description copied from interface: Fillable
      Setzt die Füllung direkt auf das angegebene Paint-Objekt.
      Specified by:
      setFill in interface Fillable
      Parameters:
      fill - Die neue Füllung.
    • getFill

      public Paint getFill()
      Description copied from interface: Fillable
      Gibt die aktuell gesetzte Füllung zurück.

      Die Art der Füllung kann anhand der Abfragen Fillable.hasFillColor() und Fillable.hasGradient() ermittelt werden.

      Specified by:
      getFill in interface Fillable
      Returns:
      Die aktuelle Füllung.
    • hasFillColor

      public boolean hasFillColor()
      Description copied from interface: Fillable
      Gibt an, ob eine Füllfarbe konfiguriert ist.

      Im Gegensatz zu Fillable.hasFill() prüft die Methode nicht, ob die Füllfarbe transparent ist.

      Specified by:
      hasFillColor in interface Fillable
      Returns:
      true, wenn eine Füllfarbe gesetzt ist.
    • hasGradient

      public boolean hasGradient()
      Description copied from interface: Fillable
      Gibt an, ob ein Farbverlauf konfiguriert ist.
      Specified by:
      hasGradient in interface Fillable
      Returns:
      true, wenn ein Farbverlauf gesetzt ist.
    • getFillColor

      public Color getFillColor()
      Description copied from interface: Fillable
      Gibt die aktuelle Füllfarbe der Form zurück.
      Specified by:
      getFillColor in interface Fillable
      Returns:
      Die aktuelle Füllfarbe oder null.
    • setFillColor

      public void setFillColor(Color color)
      Description copied from interface: Fillable
      Setzt die Füllfarbe auf die angegebene Farbe.
      Specified by:
      setFillColor in interface Fillable
      Parameters:
      color - Die neue Füllfarbe oder null.
      See Also:
    • getGradient

      public MultipleGradientPaint getGradient()
      Description copied from interface: Fillable
      Gibt den aktuellen Farbverlauf der Form zurück.
      Specified by:
      getGradient in interface Fillable
      Returns:
      Der aktuelle Farbverlauf oder null.
    • setStroke

      public void setStroke(Stroke stroke)
      Description copied from interface: Strokeable
      Setzt den Stroke für die Konturlinie direkt.
      Specified by:
      setStroke in interface Strokeable
      Parameters:
      stroke - Ein Stroke-Objekt.
    • getStroke

      public Stroke getStroke()
      Description copied from interface: Strokeable
      Gibt ein Stroke-Objekt mit den aktuell gesetzten Eigenschaften zurück.
      Specified by:
      getStroke in interface Strokeable
      Returns:
      Ein Stroke mit den passenden Kontureigenschaften.
    • getStrokeColor

      public Color getStrokeColor()
      Description copied from interface: Strokeable
      Gibt die aktuelle Farbe der Konturlinie zurück.
      Specified by:
      getStrokeColor in interface Strokeable
      Returns:
      Die Konturfarbe oder null.
    • setStrokeColor

      public void setStrokeColor(Color color)
      Description copied from interface: Strokeable
      Setzt die Farbe der Konturlinie auf die angegebene Farbe.
      Specified by:
      setStrokeColor in interface Strokeable
      Parameters:
      color - Die neue Farbe der Konturlinie.
      See Also:
    • getStrokeWeight

      public double getStrokeWeight()
      Description copied from interface: Strokeable
      Gibt die Dicke der Konturlinie zurück.
      Specified by:
      getStrokeWeight in interface Strokeable
      Returns:
      Die aktuelle Dicke der Linie.
    • setStrokeWeight

      public void setStrokeWeight(double weight)
      Description copied from interface: Strokeable
      Setzt die Dicke der Konturlinie. Die Dicke muss größer 0 sein. Wird 0 übergeben, dann wird keine Kontur mehr angezeigt.
      Specified by:
      setStrokeWeight in interface Strokeable
      Parameters:
      weight - Die Dicke der Konturlinie.
    • getStrokeType

      public Options.StrokeType getStrokeType()
      Description copied from interface: Strokeable
      Gibt die Art der Konturlinie zurück.
      Specified by:
      getStrokeType in interface Strokeable
      Returns:
      Die aktuelle Art der Konturlinie.
      See Also:
    • setStrokeType

      public void setStrokeType(Options.StrokeType type)
      Description copied from interface: Strokeable
      Setzt den Typ der Kontur. Erlaubte Werte sind Constants.DASHED, Constants.DOTTED und Constants.SOLID.
      Specified by:
      setStrokeType in interface Strokeable
      Parameters:
      type - Eine der möglichen Konturarten.
      See Also: