|
||||||||||
| 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.AbstractButton
javax.swing.JButton
org.jdesktop.swingx.JXButton
public class JXButton
A Painter enabled subclass of JButton.
This class supports setting the foreground and background painters of the button separately. By default,
JXButton creates and installs two Painters; one for the foreground, and one
for the background. These default Painters delegate to the installed UI delegate.
For example, if you wanted to blur just the text on the button, and let everything else be handled by the UI delegate for your look and feel, then you could:
JXButton b = new JXButton("Execute");
AbstractPainter fgPainter = (AbstractPainter)b.getForegroundPainter();
StackBlurFilter filter = new StackBlurFilter();
fgPainter.setFilters(filter);
If either the foreground painter or the background painter is set,
then super.paintComponent() is not called. By setting both the foreground and background
painters to null, you get exactly the same painting behavior as JButton.
By contrast, the Painters installed by default will delegate to the UI delegate,
thus achieving the same look as a typical JButton, but at the cost of some additional painting
overhead.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class javax.swing.JButton |
|---|
JButton.AccessibleJButton |
| Nested classes/interfaces inherited from class javax.swing.AbstractButton |
|---|
AbstractButton.AccessibleAbstractButton, AbstractButton.ButtonChangeListener |
| 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 |
|---|
| 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 | |
|---|---|
JXButton()
Creates a new instance of JXButton |
|
JXButton(Action a)
|
|
JXButton(Icon icon)
|
|
JXButton(String text)
|
|
JXButton(String text,
Icon icon)
|
|
| Method Summary | |
|---|---|
Painter<JXButton> |
getBackgroundPainter()
|
Painter<JXButton> |
getForegroundPainter()
|
String |
getText()
Returns the button's text. |
protected void |
init(String text,
Icon icon)
|
boolean |
isBorderPainted()
Gets the borderPainted property. |
boolean |
isContentAreaFilled()
Gets the contentAreaFilled property. |
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 |
setBackgroundPainter(Painter<JXButton> p)
|
void |
setBorderPainted(boolean b)
Sets the borderPainted property. |
void |
setContentAreaFilled(boolean b)
Sets the contentAreaFilled property. |
void |
setForegroundPainter(Painter<JXButton> p)
|
void |
setPaintBorderInsets(boolean paintBorderInsets)
Sets the paintBorderInsets property. |
protected void |
setPainting(boolean b)
|
void |
setText(String text)
Sets the button's text. |
| Methods inherited from class javax.swing.JButton |
|---|
getAccessibleContext, getUIClassID, isDefaultButton, isDefaultCapable, paramString, removeNotify, setDefaultCapable, updateUI |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public JXButton()
public JXButton(String text)
public JXButton(Action a)
public JXButton(Icon icon)
public JXButton(String text,
Icon icon)
| Method Detail |
|---|
protected void init(String text,
Icon icon)
init in class AbstractButtonpublic void setText(String text)
javax.swing.AbstractButton
setText in class AbstractButtontext - the string used to set the textAbstractButton.getText()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 ComponentComponent.update(Graphics)public String getText()
javax.swing.AbstractButton
getText in class AbstractButtonAbstractButton.setText(java.lang.String)public void setBorderPainted(boolean b)
javax.swing.AbstractButtonborderPainted property.
If true and the button has a border,
the border is painted. The default value for the
borderPainted property is true.
setBorderPainted in class AbstractButtonb - if true and border property is not null,
the border is paintedAbstractButton.isBorderPainted()public boolean isBorderPainted()
javax.swing.AbstractButtonborderPainted property.
isBorderPainted in class AbstractButtonborderPainted propertyAbstractButton.setBorderPainted(boolean)public void setContentAreaFilled(boolean b)
javax.swing.AbstractButtoncontentAreaFilled property.
If true the button will paint the content
area. If you wish to have a transparent button, such as
an icon only button, for example, then you should set
this to false. Do not call setOpaque(false).
The default value for the the contentAreaFilled
property is true.
This function may cause the component's opaque property to change.
The exact behavior of calling this function varies on a component-by-component and L&F-by-L&F basis.
setContentAreaFilled in class AbstractButtonb - if true, the content should be filled; if false
the content area is not filledAbstractButton.isContentAreaFilled(),
JComponent.setOpaque(boolean)public boolean isContentAreaFilled()
javax.swing.AbstractButtoncontentAreaFilled property.
isContentAreaFilled in class AbstractButtoncontentAreaFilled propertyAbstractButton.setContentAreaFilled(boolean)public Painter<JXButton> getBackgroundPainter()
public void setBackgroundPainter(Painter<JXButton> p)
public Painter<JXButton> getForegroundPainter()
public void setForegroundPainter(Painter<JXButton> p)
public boolean isPaintBorderInsets()
public void setPaintBorderInsets(boolean paintBorderInsets)
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)protected 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 - the Graphics object to protectJComponent.paint(java.awt.Graphics),
ComponentUIprotected void setPainting(boolean b)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||