Class ShapePainter

All Implemented Interfaces:
Painter<Object>

@JavaBean public class ShapePainter extends AbstractAreaPainter<Object>

A Painter that paints java.awt.Shapes. It uses a stroke and a fillPaint to do so. The shape is painted as is, at a specific location. If no Shape is specified, nothing will be painted. If no stroke is specified, the default for the Graphics2D will be used. If no fillPaint is specified, the component background color will be used. The shape can be positioned using the insets, horizontal, and vertical properties.

Here is an example that draws a rectangle aligned on the center right:


  Rectangle2D.Double rect = new Rectangle2D.Double(0, 0, 50, 50);
  ShapePainter p = new ShapePainter(rect);
 p.setHorizontal(HorizontalAlignment.RIGHT);
 p.setVertical(VerticalAlignment.CENTER);
 
  • Field Details

    • shape

      private Shape shape
      The Shape to fillPaint. If null, nothing is painted.
  • Constructor Details

    • ShapePainter

      public ShapePainter()
      Create a new ShapePainter
    • ShapePainter

      public ShapePainter(Shape shape)
      Create a new ShapePainter with the specified shape.
      Parameters:
      shape - the shape to fillPaint
    • ShapePainter

      public ShapePainter(Shape shape, Paint paint)
      Create a new ShapePainter with the specified shape and fillPaint.
      Parameters:
      shape - the shape to fillPaint
      paint - the fillPaint to be used to fillPaint the shape
    • ShapePainter

      public ShapePainter(Shape shape, Paint paint, AbstractAreaPainter.Style style)
      Create a new ShapePainter with the specified shape and fillPaint. The shape can be filled or stroked (only the outline is painted).
      Parameters:
      shape - the shape to fillPaint
      paint - the fillPaint to be used to fillPaint the shape
      style - specifies the ShapePainter.Style to use for painting this shape. If null, then Style.BOTH is used
  • Method Details

    • setShape

      public void setShape(Shape s)
      Sets the shape to fillPaint. This shape is not resized when the component bounds are. To do that, create a custom shape that is bound to the component width/height
      Parameters:
      s - the Shape to fillPaint. May be null
    • getShape

      public Shape getShape()
      Gets the current shape
      Returns:
      the Shape to fillPaint. May be null
    • doPaint

      protected void doPaint(Graphics2D g, Object component, int w, int h)
      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 -
      w -
      h -
    • drawShape

      private void drawShape(Graphics2D g, Shape s, Object component, int w, int h)
    • fillShape

      private void fillShape(Graphics2D g, Shape s, Object component, int w, int h)
    • provideShape

      protected Shape provideShape(Graphics2D g, Object comp, int width, int height)
      Description copied from class: AbstractAreaPainter
      Returns the outline shape of this painter. Subclasses must implement this method. This shape will be used for filling, stroking, and clipping.
      Specified by:
      provideShape in class AbstractAreaPainter<Object>
      Parameters:
      g - graphics
      comp - The Object this painter will be painted on.
      width - the width to paint
      height - the height to paint
      Returns:
      the outline shape of this painter
    • calculateStrokePaint

      private Paint calculateStrokePaint(Object component, int width, int height)
    • calculateFillPaint

      private Paint calculateFillPaint(Object component, int width, int height)
    • drawPathEffects

      private void drawPathEffects(Graphics2D g, Shape s, int w, int h)