|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JLabel
org.jdesktop.swingx.JXLabel
public class JXLabel
A JLabel
subclass which supports Painter
s, multi-line text,
and text rotation.
Painter support consists of the foregroundPainter
and backgroundPainter
properties. The
backgroundPainter
refers to a painter responsible for painting beneath the text and icon. This
painter, if set, will paint regardless of the opaque
property. If the background painter does not
fully paint each pixel, then you should make sure the opaque
property is set to false.
The foregroundPainter
is responsible for painting the icon and the text label. If no foregroundPainter
is specified, then the look and feel will paint the label. Note that if opaque is set to true and the look and feel
is rendering the foreground, then the foreground may paint over the background. Most look and feels will
paint a background when opaque
is true. To avoid this behavior, set opaque
to false.
Since JXLabel is not opaque by default (isOpaque()
returns false), neither of these problems
typically present themselves.
Multi-line text is enabled via the lineWrap
property. Simply set it to true. By default, line wrapping
occurs on word boundaries.
The text (actually, the entire foreground and background) of the JXLabel may be rotated. Set the
rotation
property to specify what the rotation should be. Specify rotation angle in radian units.
Nested Class Summary | |
---|---|
protected static interface |
JXLabel.IValue
|
static class |
JXLabel.MultiLineSupport
|
static class |
JXLabel.TextAlignment
Text alignment enums. |
Nested classes/interfaces inherited from class javax.swing.JLabel |
---|
JLabel.AccessibleJLabel |
Nested classes/interfaces inherited from class javax.swing.JComponent |
---|
JComponent.AccessibleJComponent |
Nested classes/interfaces inherited from class java.awt.Container |
---|
Container.AccessibleAWTContainer |
Nested classes/interfaces inherited from class java.awt.Component |
---|
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy |
Field Summary | |
---|---|
static double |
INVERTED
|
static double |
NORMAL
|
boolean |
painted
|
static double |
VERTICAL_LEFT
|
static double |
VERTICAL_RIGHT
|
Fields inherited from class javax.swing.JLabel |
---|
labelFor |
Fields inherited from class javax.swing.JComponent |
---|
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW |
Fields inherited from class java.awt.Component |
---|
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
Fields inherited from interface javax.swing.SwingConstants |
---|
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST |
Fields inherited from interface java.awt.image.ImageObserver |
---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
Constructor Summary | |
---|---|
JXLabel()
Create a new JXLabel. |
|
JXLabel(Icon image)
Creates new JXLabel with given icon. |
|
JXLabel(Icon image,
int horizontalAlignment)
Creates new JXLabel with given icon and alignment. |
|
JXLabel(String text)
Create a new JXLabel with the given text as the text for the label. |
|
JXLabel(String text,
Icon image,
int horizontalAlignment)
Creates new JXLabel with given text, icon and alignment. |
|
JXLabel(String text,
int horizontalAlignment)
Creates new JXLabel with given text and alignment. |
Method Summary | |
---|---|
Painter |
getBackgroundPainter()
Returns the current background painter. |
Painter |
getForegroundPainter()
Returns the current foregroundPainter. |
int |
getHeight()
Returns the current height of this component. |
int |
getMaxLineSpan()
|
protected JXLabel.MultiLineSupport |
getMultiLineSupport()
|
protected int |
getOccupiedWidth()
|
Dimension |
getPreferredSize()
If the preferredSize has been set to a
non-null value just returns it. |
JXLabel.TextAlignment |
getTextAlignment()
Gets current text wrapping style. |
double |
getTextRotation()
Gets current value of text rotation in rads. |
int |
getWidth()
Returns the current width of this component. |
boolean |
isLineWrap()
Returns the current status of line wrap support. |
boolean |
isOpaque()
Returns true if this component is completely opaque. |
boolean |
isPaintBorderInsets()
Returns true if the background painter should paint where the border is or false if it should only paint inside the border. |
protected void |
paintComponent(Graphics g)
Calls the UI delegate's paint method, if the UI delegate is non- null . |
void |
repaint()
Repaints this component. |
void |
repaint(int x,
int y,
int width,
int height)
Repaints the specified rectangle of this component. |
void |
repaint(long tm)
Repaints the component. |
void |
repaint(long tm,
int x,
int y,
int width,
int height)
Adds the specified region to the dirty region list if the component is showing. |
void |
reshape(int x,
int y,
int w,
int h)
|
void |
setBackgroundPainter(Painter p)
Sets a Painter to use to paint the background of this component By default there is already a single painter installed which draws the normal background for this component according to the current Look and Feel. |
void |
setForegroundPainter(Painter painter)
Sets a new foregroundPainter on the label. |
void |
setLineWrap(boolean b)
Enables line wrapping support for plain text. |
void |
setMaxLineSpan(int maxLineSpan)
|
void |
setPaintBorderInsets(boolean paintBorderInsets)
Sets the paintBorderInsets property. |
void |
setTextAlignment(JXLabel.TextAlignment alignment)
Sets style of wrapping the text. |
void |
setTextRotation(double textOrientation)
Sets new value for text rotation. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final double NORMAL
public static final double INVERTED
public static final double VERTICAL_LEFT
public static final double VERTICAL_RIGHT
public boolean painted
Constructor Detail |
---|
public JXLabel()
public JXLabel(Icon image)
image
- the icon to set.public JXLabel(Icon image, int horizontalAlignment)
image
- the icon to set.horizontalAlignment
- the text alignment.public JXLabel(String text)
JXLabel label = new JXLabel();
label.setText("Some Text");
text
- the text to set.public JXLabel(String text, Icon image, int horizontalAlignment)
text
- the test to set.image
- the icon to set.horizontalAlignment
- the text alignment relative to the icon.public JXLabel(String text, int horizontalAlignment)
text
- the test to set.horizontalAlignment
- the text alignment.Method Detail |
---|
public final Painter getForegroundPainter()
public void reshape(int x, int y, int w, int h)
reshape
in class JComponent
x
- the new horizontal locationy
- the new vertical locationw
- the new widthh
- the new heightComponent.setBounds(int, int, int, int)
public void setForegroundPainter(Painter painter)
painter
- public void setBackgroundPainter(Painter p)
setBackgroundPainter
will replace that existing painter.
p
- the new paintergetBackgroundPainter()
public final Painter getBackgroundPainter()
setBackgroundPainter(Painter)
public double getTextRotation()
setTextRotation(double)
public Dimension getPreferredSize()
javax.swing.JComponent
preferredSize
has been set to a
non-null
value just returns it.
If the UI delegate's getPreferredSize
method returns a non null
value then return that;
otherwise defer to the component's layout manager.
getPreferredSize
in class JComponent
preferredSize
propertyJComponent.setPreferredSize(java.awt.Dimension)
,
ComponentUI
public int getMaxLineSpan()
public void setMaxLineSpan(int maxLineSpan)
public void setTextRotation(double textOrientation)
textOrientation
- Value for text rotation in range <0,2PI>getTextRotation()
public void setLineWrap(boolean b)
b
- the new valuepublic boolean isLineWrap()
public JXLabel.TextAlignment getTextAlignment()
public void setTextAlignment(JXLabel.TextAlignment alignment)
alignment
- for accepted values.
public boolean isPaintBorderInsets()
public boolean isOpaque()
javax.swing.JComponent
An opaque component paints every pixel within its rectangular bounds. A non-opaque component paints only a subset of its pixels or none at all, allowing the pixels underneath it to "show through". Therefore, a component that does not fully paint its pixels provides a degree of transparency.
Subclasses that guarantee to always completely paint their contents should override this method and return true.
isOpaque
in class JComponent
JComponent.setOpaque(boolean)
public void setPaintBorderInsets(boolean paintBorderInsets)
paintBorderInsets
- new value of the paintBorderInsets propertyprotected void paintComponent(Graphics g)
javax.swing.JComponent
null
. We pass the delegate a copy of the
Graphics
object to protect the rest of the
paint code from irrevocable changes
(for example, Graphics.translate
).
If you override this in a subclass you should not make permanent
changes to the passed in Graphics
. For example, you
should not alter the clip Rectangle
or modify the
transform. If you need to do these operations you may find it
easier to create a new Graphics
from the passed in
Graphics
and manipulate it. Further, if you do not
invoker super's implementation you must honor the opaque property,
that is
if this component is opaque, you must completely fill in the background
in a non-opaque color. If you do not honor the opaque property you
will likely see visual artifacts.
The passed in Graphics
object might
have a transform other than the identify transform
installed on it. In this case, you might get
unexpected results if you cumulatively apply
another transform.
paintComponent
in class JComponent
g
- graphics to paint onJComponent.paint(java.awt.Graphics)
,
ComponentUI
public void repaint()
java.awt.Component
If this component is a lightweight component, this method
causes a call to this component's paint
method as soon as possible. Otherwise, this method causes
a call to this component's update
method as soon
as possible.
Note: For more information on the paint mechanisms utilitized by AWT and Swing, including information on how to write the most efficient painting code, see Painting in AWT and Swing.
repaint
in class Component
Component.update(Graphics)
public void repaint(int x, int y, int width, int height)
java.awt.Component
If this component is a lightweight component, this method
causes a call to this component's paint
method
as soon as possible. Otherwise, this method causes a call to
this component's update
method as soon as possible.
Note: For more information on the paint mechanisms utilitized by AWT and Swing, including information on how to write the most efficient painting code, see Painting in AWT and Swing.
repaint
in class Component
x
- the x coordinatey
- the y coordinatewidth
- the widthheight
- the heightComponent.update(Graphics)
public void repaint(long tm)
java.awt.Component
paint
within tm
milliseconds.
Note: For more information on the paint mechanisms utilitized by AWT and Swing, including information on how to write the most efficient painting code, see Painting in AWT and Swing.
repaint
in class Component
tm
- maximum time in milliseconds before updateComponent.paint(java.awt.Graphics)
,
Component.update(Graphics)
public void repaint(long tm, int x, int y, int width, int height)
javax.swing.JComponent
repaint
in class JComponent
tm
- this parameter is not usedx
- the x value of the dirty regiony
- the y value of the dirty regionwidth
- the width of the dirty regionheight
- the height of the dirty regionComponent.isShowing()
,
RepaintManager.addDirtyRegion(javax.swing.JComponent, int, int, int, int)
public int getHeight()
javax.swing.JComponent
component.getBounds().height
, or
component.getSize().height
because it doesn't cause any
heap allocations.
getHeight
in class JComponent
public int getWidth()
javax.swing.JComponent
component.getBounds().width
, or
component.getSize().width
because it doesn't cause any
heap allocations.
getWidth
in class JComponent
protected JXLabel.MultiLineSupport getMultiLineSupport()
protected int getOccupiedWidth()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |