Class PinstripePainter

All Implemented Interfaces:
Painter<Object>

@JavaBean public class PinstripePainter extends AbstractPainter<Object>

A fun Painter that paints pinstripes. You can specify the Paint to paint those pinstripes in (could even be a texture paint!), the angle at which to paint the pinstripes, and the spacing between stripes.

The default PinstripePainter configuration will paint the pinstripes using the foreground color of the component (the default behavior if a Paint is not specified) at a 45 degree angle with 8 pixels between stripes

Here is a custom code snippet that paints Color.GRAY pinstripes at a 135 degree angle:

 
  PinstripePainter p = new PinstripePainter();
  p.setAngle(135);
  p.setPaint(Color.GRAY);
 
 
  • Field Details

    • angle

      private double angle
      The angle in degrees to paint the pinstripes at. The default value is 45. The value will be between 0 and 360 inclusive. The setAngle method will ensure this.
    • spacing

      private double spacing
      The spacing between pinstripes
    • stripeWidth

      private double stripeWidth
      The stroke width of the pinstripes
    • paint

      private Paint paint
      The Paint to use when drawing the pinstripes
  • Constructor Details

    • PinstripePainter

      public PinstripePainter()
      Create a new PinstripePainter. By default the angle with be 45 degrees, the spacing will be 8 pixels, and the color will be the Component foreground color.
    • PinstripePainter

      public PinstripePainter(Paint paint)
      Create a new PinstripePainter using an angle of 45, 8 pixel spacing, and the given Paint.
      Parameters:
      paint - the paint used when drawing the stripes
    • PinstripePainter

      public PinstripePainter(double angle)
      Create a new PinstripePainter using the given angle, 8 pixel spacing, and the foreground color of the Component
      Parameters:
      angle - the angle, in degrees, in which to paint the pinstripes
    • PinstripePainter

      public PinstripePainter(Paint paint, double angle)
      Create a new PinstripePainter using the given angle, 8 pixel spacing, and the given Paint
      Parameters:
      paint - the paint used when drawing the stripes
      angle - the angle, in degrees, in which to paint the pinstripes
    • PinstripePainter

      public PinstripePainter(Paint paint, double angle, double stripeWidth, double spacing)
      Create a new PinstripePainter with the specified paint, angle, stripe width, and stripe spacing.
      Parameters:
      paint -
      angle -
      stripeWidth -
      spacing -
  • Method Details

    • getPaint

      public Paint getPaint()
      Get the current paint used for drawing the pinstripes
      Returns:
      the Paint to use to draw the pinstripes
    • setPaint

      public void setPaint(Paint p)
      Set the paint to use for drawing the pinstripes
      Parameters:
      p - the Paint to use. May be a Color.
    • getAngle

      public double getAngle()
      Gets the current angle of the pinstripes
      Returns:
      the angle, in degrees, at which the pinstripes are painted
    • setAngle

      public void setAngle(double angle)
      Sets the angle, in degrees, at which to paint the pinstripes. If the given angle is invalid input: '<' 0 or > 360, it will be appropriately constrained. For example, if a value of 365 is given, it will result in 5 degrees. The conversion is not perfect, but "a man on a galloping horse won't be able to tell the difference".
      Parameters:
      angle - the Angle in degrees at which to paint the pinstripes
    • getStripeWidth

      public double getStripeWidth()
      Gets the current width of the pinstripes
      Returns:
      the current pinstripe width
    • setStripeWidth

      public void setStripeWidth(double stripeWidth)
      Set the width of the pinstripes
      Parameters:
      stripeWidth - a new width for the pinstripes
    • getSpacing

      public double getSpacing()
      Get the current spacing between the stripes
      Returns:
      the spacing between pinstripes
    • setSpacing

      public void setSpacing(double spacing)
      Sets the spacing between pinstripes
      Parameters:
      spacing - spacing between pinstripes
    • doPaint

      protected void doPaint(Graphics2D g, Object component, int width, int height)
      Subclasses must implement this method and perform custom painting operations here.
      Specified by:
      doPaint in class AbstractPainter<Object>
      Parameters:
      g - The Graphics2D object in which to paint
      component -
      width -
      height -