Class CheckerboardPainter

All Implemented Interfaces:
Painter<Object>

@JavaBean public class CheckerboardPainter extends AbstractPainter<Object>

A Painter implementation that paints a checkerboard pattern. The light and dark colors (Paint instances) are configurable, as are the size of the squares (squareSize).

To configure a checkerboard pattern that used a gradient for the dark tiles and Color.WHITE for the light tiles, you could:


  GradientPaint gp = new GradientPaint(
      new Point2D.Double(0, 0),
      Color.BLACK,
      new Point2D.Double(0, 32),
      Color.GRAY);
  CheckerboardPainter p = new CheckerboardPainter();
  p.setDarkPaint(gp);
  p.setLightPaint(Color.WHITE);
  p.setSquareSize(32);
  panel.seBackgroundPainter(p);
 

Note that in this example, the "32" in the GradientPaint matches the "32" set for the squareSize. This is necessary because GradientPaints don't readjust themselves for the size of the square. They are fixed and immutable at the time of creation.

  • Field Details

    • checkerPaint

      private transient Paint checkerPaint
    • darkPaint

      private Paint darkPaint
    • lightPaint

      private Paint lightPaint
    • squareSize

      private double squareSize
  • Constructor Details

    • CheckerboardPainter

      public CheckerboardPainter()
      Create a new CheckerboardPainter. By default the light color is Color.WHITE, the dark color is a light gray, and the square length is 8.
    • CheckerboardPainter

      public CheckerboardPainter(Paint darkPaint, Paint lightPaint)
      Create a new CheckerboardPainter with the specified light and dark paints. By default the square length is 8.
      Parameters:
      darkPaint - the paint used to draw the dark squares
      lightPaint - the paint used to draw the light squares
    • CheckerboardPainter

      public CheckerboardPainter(Paint darkPaint, Paint lightPaint, double squareSize)
      Create a new CheckerboardPainter with the specified light and dark paints and the specified square size.
      Parameters:
      darkPaint - the paint used to draw the dark squares
      lightPaint - the paint used to draw the light squares
      squareSize - the squareSize of the checker board squares
  • Method Details

    • setSquareSize

      public void setSquareSize(double squareSize)
      Specifies the squareSize of the squares. By default, it is 8. A squareSize of invalid input: '<'= 0 will cause an IllegalArgumentException to be thrown.
      Parameters:
      squareSize - the squareSize of one side of a square tile. Must be > 0.
    • getSquareSize

      public double getSquareSize()
      Gets the current square length.
      Returns:
      the squareSize. Will be > 0
    • setDarkPaint

      public void setDarkPaint(Paint color)
      Specifies the paint to use for dark tiles. This is a Paint and may be anything, including a TexturePaint for painting images. If null, the background color of the component is used.
      Parameters:
      color - the Paint to use for painting the "dark" tiles. May be null.
    • getDarkPaint

      public Paint getDarkPaint()
      Gets the current dark paint.
      Returns:
      the Paint used for painting the "dark" tiles. May be null
    • setLightPaint

      public void setLightPaint(Paint color)
      Specifies the paint to use for light tiles. This is a Paint and may be anything, including a TexturePaint for painting images. If null, the foreground color of the component is used.
      Parameters:
      color - the Paint to use for painting the "light" tiles. May be null.
    • getLightPaint

      public Paint getLightPaint()
      gets the current light paint
      Returns:
      the Paint used for painting the "light" tiles. May be null
    • getCheckerPaint

      private Paint getCheckerPaint(Object c)
      Helper method that creates and returns the Paint that incorporates the sizes and light and dark Paints in one TexturePaint. I may want to cache this value in the future for performance reasons
    • doPaint

      protected void doPaint(Graphics2D g, Object t, 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
      t -
      width -
      height -