Package org.jdesktop.swingx.painter
Class PinstripePainter
- java.lang.Object
-
- org.jdesktop.beans.AbstractBean
-
- org.jdesktop.swingx.painter.AbstractPainter<java.lang.Object>
-
- org.jdesktop.swingx.painter.PinstripePainter
-
- All Implemented Interfaces:
Painter<java.lang.Object>
@JavaBean public class PinstripePainter extends AbstractPainter<java.lang.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);
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.jdesktop.swingx.painter.AbstractPainter
AbstractPainter.Interpolation
-
-
Field Summary
Fields Modifier and Type Field Description private double
angle
The angle in degrees to paint the pinstripes at.private java.awt.Paint
paint
The Paint to use when drawing the pinstripesprivate double
spacing
The spacing between pinstripesprivate double
stripeWidth
The stroke width of the pinstripes
-
Constructor Summary
Constructors Constructor Description PinstripePainter()
Create a new PinstripePainter.PinstripePainter(double angle)
Create a new PinstripePainter using the given angle, 8 pixel spacing, and the foreground color of the ComponentPinstripePainter(java.awt.Paint paint)
Create a new PinstripePainter using an angle of 45, 8 pixel spacing, and the given Paint.PinstripePainter(java.awt.Paint paint, double angle)
Create a new PinstripePainter using the given angle, 8 pixel spacing, and the given PaintPinstripePainter(java.awt.Paint paint, double angle, double stripeWidth, double spacing)
Create a new PinstripePainter with the specified paint, angle, stripe width, and stripe spacing.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
doPaint(java.awt.Graphics2D g, java.lang.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 pinstripesjava.awt.Paint
getPaint()
Get the current paint used for drawing the pinstripesdouble
getSpacing()
Get the current spacing between the stripesdouble
getStripeWidth()
Gets the current width of the pinstripesvoid
setAngle(double angle)
Sets the angle, in degrees, at which to paint the pinstripes.void
setPaint(java.awt.Paint p)
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 pinstripes-
Methods 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 Detail
-
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 java.awt.Paint paint
The Paint to use when drawing the pinstripes
-
-
Constructor Detail
-
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(java.awt.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(java.awt.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 stripesangle
- the angle, in degrees, in which to paint the pinstripes
-
PinstripePainter
public PinstripePainter(java.awt.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 Detail
-
getPaint
public java.awt.Paint getPaint()
Get the current paint used for drawing the pinstripes- Returns:
- the Paint to use to draw the pinstripes
-
setPaint
public void setPaint(java.awt.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 < 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(java.awt.Graphics2D g, java.lang.Object component, int width, int height)
Subclasses must implement this method and perform custom painting operations here.- Specified by:
doPaint
in classAbstractPainter<java.lang.Object>
- Parameters:
g
- The Graphics2D object in which to paint
-
-