Class BorderBox

All Implemented Interfaces:
Iterable<Box>

public class BorderBox extends ChildBox
Legt einen Rahmen um eine enthaltene Kind-Box.
Since:
0.40.0
  • Constructor Details

    • BorderBox

      public BorderBox(Box child)
      Erzeugt einen neuen Rahmen durch die Angabe der enthaltenen Kind-Box.
      Parameters:
      child - Die Kind-Box, die umrahmt werden soll.
      Since:
      0.40.0
  • Method Details

    • thickness

      public int thickness()
      Gibt die Linienstärke des Rahmens in Pixeln zurück.
      Returns:
      Die Linienstärke des Rahmens in Pixeln.
      Since:
      0.40.0
    • thickness

      @Setter @ChainableMethod public BorderBox thickness(double thickness)
      Setzt die Dicke der Linie in Pixel. Ist die Linienfarbe noch nicht festgelegt worden, so wird auf schwarz gesetzt.
      Parameters:
      thickness - Die Dicke der Linie in Pixel.
      Returns:
      Eine Referenz auf die eigene Instanz der Box, damit nach dem Erbauer/Builder-Entwurfsmuster die Eigenschaften der Box durch aneinander gekettete Setter festgelegt werden können, z.B. box.x(..).y(..).
      Since:
      0.40.0
    • thicknessMeter

      public BorderBox thicknessMeter(double thickness)
      Setzt die Linienstärke des Rahmens in Metern.
      Parameters:
      thickness - Die Linienstärke des Rahmens in Metern.
      Returns:
      Eine Referenz auf die eigene Instanz der Box.
      Since:
      0.53.0
    • color

      @Setter @ChainableMethod public BorderBox color(Color color)
      Setzt die Farbe der Linie in Pixel.

      Ist die Liniendicke noch nicht festgelegt worden, so wird sie auf 1 Pixel gesetzt.

      Parameters:
      color - Die Farbe der Linie in Pixel.
      Returns:
      Eine Referenz auf die eigene Instanz der Box, damit nach dem Erbauer/Builder-Entwurfsmuster die Eigenschaften der Box durch aneinander gekettete Setter festgelegt werden können, z.B. box.x(..).y(..).
      Since:
      0.40.0
    • color

      @Setter @ChainableMethod public BorderBox color(String color)
      Setzt die Farbe der Linie in Pixel.

      Ist die Liniendicke noch nicht festgelegt worden, so wird sie auf 1 Pixel gesetzt.

      Parameters:
      color - Ein Farbname (siehe Auflistung) oder eine Farbe in hexadezimaler Codierung (z.B. #ff0000).
      Returns:
      Eine Referenz auf die eigene Instanz der Box, damit nach dem Erbauer/Builder-Entwurfsmuster die Eigenschaften der Box durch aneinander gekettete Setter festgelegt werden können, z.B. box.x(..).y(..).
    • pixelPerMeter

      @Setter @ChainableMethod public Box pixelPerMeter(double pixelPerMeter)
      Setzt den Umrechnungsfaktor für die Darstellung von Metern in Pixel und passt zusätzlich die Rahmendicke an.
      Overrides:
      pixelPerMeter in class Box
      Parameters:
      pixelPerMeter - Die Anzahl der Pixel pro Meter. Der Wert muss größer als 0 sein.
      Returns:
      Eine Referenz auf die eigene Instanz der Box.
      Since:
      0.53.0
    • calculateDimension

      protected void calculateDimension()
      Description copied from class: Box
      Berechnet rekursiv die Abmessung (die Höhe und Breite) der eigenen Box.

      Single-Child-Code-Beispiel

       
       protected void calculateDimension()
       {
           width = child.width + 2 * margin;
           height = child.height + 2 * margin;
       }
        

      Multiple-Child-Code-Beispiel

       
       protected void calculateDimension()
       {
           int maxWidth = 0;
           for (Box child : childs)
           {
               if (child.width > maxWidth)
               {
                   maxWidth = child.width;
               }
               height += child.height;
           }
           width = maxWidth;
       }
        
      Specified by:
      calculateDimension in class Box
    • calculateAnchors

      protected void calculateAnchors()
      Description copied from class: Box
      Berechnet rekursiv alle Ankerpunkte (linkes unteres Eck) der untergeordneten Kinder-Boxen. Die inneren Blattboxen brauchen diese Methode nicht zu implementieren.

      Single-Child-Code-Beispiel

       
       protected void calculateAnchors()
       {
           child.x = x + margin;
           child.y = y + margin;
       }
        

      Multiple-Child-Code-Beispiel

       
       protected void calculateAnchors()
       {
           int yCursor = y;
           for (Box child : childs)
           {
               child.x = x;
               child.y = yCursor;
               yCursor += child.height;
           }
       }
        
      Specified by:
      calculateAnchors in class Box