Package org.jdesktop.swingx.painter
Class AbstractLayoutPainter<T>
java.lang.Object
org.jdesktop.beans.AbstractBean
org.jdesktop.swingx.painter.AbstractPainter<T>
org.jdesktop.swingx.painter.AbstractLayoutPainter<T>
- All Implemented Interfaces:
Painter<T>
- Direct Known Subclasses:
AbstractAreaPainter
An abstract base class for any painter which can be positioned. This means
the painter has some intrinsic size to what it is drawing and
can be stretched or aligned both horizontally and vertically.
The AbstractLayoutPainter class provides the following configuraable properties:
- horizonalAlignment - the horizonal alignment (left, center, and right)
- verticalAlignment - the verticalAlignment alignment (top, center, and bottom)
- fillHorizontal - indicates if the painter should stretch to fill the available space horizontally
- fillVertical - indicates if the painter should stretch to fill the available space vertically
- insets - whitespace on the top, bottom, left, and right.
ImagePainter p = new ImagePainter(null);
p.setVerticalAlignment(AbstractLayoutPainter.VerticalAlignment.BOTTOM);
p.setHorizontalAlignment(AbstractLayoutPainter.HorizontalAlignment.RIGHT);
p.setInsets(new Insets(0,0,5,5));
For something which is resizable, like a RectanglePainter, you can use the fill properties
to make it resize along with the paintable area. For example, to make a rectangle with 20 px
rounded corners, and which resizes with the paintable area but is inset
by 10 pixels on all sides, you could do
the following:
RectanglePainter p = new RectanglePainter();
p.setRoundHeight(20);
p.setRoundWidth(20);
p.setInsets(new Insets(10,10,10,10));
p.setFillHorizontal(true);
p.setFillVertical(true);
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enum
An enum which controls horizontalAlignment alignmentstatic enum
An enum which controls verticalAlignment alignmentNested classes/interfaces inherited from class org.jdesktop.swingx.painter.AbstractPainter
AbstractPainter.Interpolation
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate boolean
private boolean
private Insets
Specifies how to draw the image, i.e. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected final Rectangle
calculateLayout
(int contentWidth, int contentHeight, int width, int height) A protected method used by subclasses to calculate the final position of the content.private int
calculateX
(int imgWidth, int width) private int
calculateY
(int imgHeight, int height) Gets the current horizontalAlignment alignment.Gets the current whitespace insets.gets the current verticalAlignment alignmentboolean
indicates if the painter content is stretched horizontallyboolean
indicates if the painter content is stretched verticallyvoid
setFillHorizontal
(boolean fillHorizontal) Sets if the content should be stretched horizontally to fill all available horizontalAlignment space (minus the left and right insets).void
setFillVertical
(boolean verticalStretch) Sets if the content should be stretched vertically to fill all available verticalAlignment space (minus the top and bottom insets).void
Sets a new horizontalAlignment alignment.void
Sets the current whitespace insets.void
Sets a new verticalAlignment alignment.Methods inherited from class org.jdesktop.swingx.painter.AbstractPainter
clearCache, configureGraphics, doPaint, 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
-
verticalAlignment
Specifies how to draw the image, i.e. what kind of Style to use when drawing -
horizontalAlignment
-
insets
-
fillVertical
private boolean fillVertical -
fillHorizontal
private boolean fillHorizontal
-
-
Constructor Details
-
AbstractLayoutPainter
public AbstractLayoutPainter()Creates a new instance of AbstractLayoutPainter
-
-
Method Details
-
getHorizontalAlignment
Gets the current horizontalAlignment alignment.- Returns:
- the current horizontalAlignment alignment
-
getInsets
Gets the current whitespace insets.- Returns:
- the current insets
-
getVerticalAlignment
gets the current verticalAlignment alignment- Returns:
- current verticalAlignment alignment
-
isFillHorizontal
public boolean isFillHorizontal()indicates if the painter content is stretched horizontally- Returns:
- the current horizontalAlignment stretch value
-
isFillVertical
public boolean isFillVertical()indicates if the painter content is stretched vertically- Returns:
- the current verticalAlignment stretch value
-
setHorizontalAlignment
Sets a new horizontalAlignment alignment. Used to position the content at the left, right, or center.- Parameters:
horizontal
- new horizontalAlignment alignment
-
setFillHorizontal
public void setFillHorizontal(boolean fillHorizontal) Sets if the content should be stretched horizontally to fill all available horizontalAlignment space (minus the left and right insets).- Parameters:
fillHorizontal
- new horizontal stretch value
-
setInsets
Sets the current whitespace insets.- Parameters:
insets
- new insets
-
setVerticalAlignment
Sets a new verticalAlignment alignment. Used to position the content at the top, bottom, or center.- Parameters:
vertical
- new verticalAlignment alignment
-
setFillVertical
public void setFillVertical(boolean verticalStretch) Sets if the content should be stretched vertically to fill all available verticalAlignment space (minus the top and bottom insets).- Parameters:
verticalStretch
- new verticalAlignment stretch value
-
calculateLayout
protected final Rectangle calculateLayout(int contentWidth, int contentHeight, int width, int height) A protected method used by subclasses to calculate the final position of the content. This will position the content using the fillHorizontal, fillVertical horizontalAlignment, and verticalAlignment properties. This method is typically called by subclasses in their doPaint() methods.- Parameters:
contentWidth
- The width of the content to be paintedcontentHeight
- The height of the content to be paintedwidth
- the width of the area that the content will be positioned inheight
- the height of the area that the content will be positioned in- Returns:
- the rectangle for the content to be painted in
-
calculateY
private int calculateY(int imgHeight, int height) -
calculateX
private int calculateX(int imgWidth, int width)
-