|
||||||||||
| 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 Painters, 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.BaselineResizeBehavior, 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 JComponentx - 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.JComponentpreferredSize 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 JComponentpreferredSize propertyJComponent.setPreferredSize(java.awt.Dimension),
ComponentUIpublic 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.JComponentAn 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 JComponentJComponent.setOpaque(boolean)public void setPaintBorderInsets(boolean paintBorderInsets)
paintBorderInsets - new value of the paintBorderInsets propertyprotected void paintComponent(Graphics g)
javax.swing.JComponentnull. 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 JComponentg - graphics to paint onJComponent.paint(java.awt.Graphics),
ComponentUIpublic 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 ComponentComponent.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 Componentx - the x coordinatey - the y coordinatewidth - the widthheight - the heightComponent.update(Graphics)public void repaint(long tm)
java.awt.Componentpaint
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 Componenttm - 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 JComponenttm - 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.JComponentcomponent.getBounds().height, or
component.getSize().height because it doesn't cause any
heap allocations.
getHeight in class JComponentpublic int getWidth()
javax.swing.JComponentcomponent.getBounds().width, or
component.getSize().width because it doesn't cause any
heap allocations.
getWidth in class JComponentprotected JXLabel.MultiLineSupport getMultiLineSupport()
protected int getOccupiedWidth()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||