Package org.jdesktop.swingx.painter
Class PinstripePainter
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);
-
Nested Class Summary
Nested classes/interfaces inherited from class org.jdesktop.swingx.painter.AbstractPainter
AbstractPainter.Interpolation
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate double
The angle in degrees to paint the pinstripes at.private Paint
The Paint to use when drawing the pinstripesprivate double
The spacing between pinstripesprivate double
The stroke width of the pinstripes -
Constructor Summary
ConstructorsConstructorDescriptionCreate a new PinstripePainter.PinstripePainter
(double angle) Create a new PinstripePainter using the given angle, 8 pixel spacing, and the foreground color of the ComponentPinstripePainter
(Paint paint) Create a new PinstripePainter using an angle of 45, 8 pixel spacing, and the given Paint.PinstripePainter
(Paint paint, double angle) Create a new PinstripePainter using the given angle, 8 pixel spacing, and the given PaintPinstripePainter
(Paint paint, double angle, double stripeWidth, double spacing) Create a new PinstripePainter with the specified paint, angle, stripe width, and stripe spacing. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
doPaint
(Graphics2D g, Object component, int width, int height) Subclasses must implement this method and perform custom painting operations here.double
getAngle()
Gets the current angle of the pinstripesgetPaint()
Get the current paint used for drawing the pinstripesdouble
Get the current spacing between the stripesdouble
Gets the current width of the pinstripesvoid
setAngle
(double angle) Sets the angle, in degrees, at which to paint the pinstripes.void
Set the paint to use for drawing the pinstripesvoid
setSpacing
(double spacing) Sets the spacing between pinstripesvoid
setStripeWidth
(double stripeWidth) Set the width of the pinstripesMethods inherited from class org.jdesktop.swingx.painter.AbstractPainter
clearCache, configureGraphics, getFilters, getInterpolation, isAntialiasing, isCacheable, isCacheCleared, isDirty, isInPaintContext, isVisible, paint, setAntialiasing, setCacheable, setDirty, setFilters, setInPaintContext, setInterpolation, setVisible, shouldUseCache, validate
Methods inherited from class org.jdesktop.beans.AbstractBean
addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, addVetoableChangeListener, clone, fireIndexedPropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, fireVetoableChange, getPropertyChangeListeners, getPropertyChangeListeners, getVetoableChangeListeners, getVetoableChangeListeners, hasPropertyChangeListeners, hasVetoableChangeListeners, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, removeVetoableChangeListener
-
Field Details
-
angle
private double angleThe 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 spacingThe spacing between pinstripes -
stripeWidth
private double stripeWidthThe stroke width of the pinstripes -
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
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
Create a new PinstripePainter using the given angle, 8 pixel spacing, and the given Paint- Parameters:
paint
- the paint used when drawing the stripesangle
- the angle, in degrees, in which to paint the pinstripes
-
PinstripePainter
Create a new PinstripePainter with the specified paint, angle, stripe width, and stripe spacing.- Parameters:
paint
-angle
-stripeWidth
-spacing
-
-
-
Method Details
-
getPaint
Get the current paint used for drawing the pinstripes- Returns:
- the Paint to use to draw the pinstripes
-
setPaint
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
Subclasses must implement this method and perform custom painting operations here.- Specified by:
doPaint
in classAbstractPainter<Object>
- Parameters:
g
- The Graphics2D object in which to paintcomponent
-width
-height
-
-