javax.swing.plaf.basic
Class BasicButtonUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.ButtonUI
          extended by javax.swing.plaf.basic.BasicButtonUI
Direct Known Subclasses:
BasicToggleButtonUI, MetalButtonUI

public class BasicButtonUI
extends ButtonUI

A UI delegate for the JButton component.


Field Summary
protected  int defaultTextIconGap
          A constant used to pad out elements in the button's layout and preferred size calculations.
protected  int defaultTextShiftOffset
          A constant added to the defaultTextIconGap to adjust the text within this particular button.
 
Constructor Summary
BasicButtonUI()
           
 
Method Summary
protected  void clearTextShiftOffset()
          Sets the text shift offset to zero.
protected  BasicButtonListener createButtonListener(AbstractButton b)
          Creates and returns a new instance of BasicButtonListener.
static ComponentUI createUI(JComponent c)
          Factory method to create an instance of BasicButtonUI for a given JComponent, which should be an AbstractButton.
 int getDefaultTextIconGap(AbstractButton b)
          Returns the default gap between the button's text and icon (in pixels).
 Dimension getMaximumSize(JComponent c)
          Calculates the maximum size for the specified component.
 Dimension getMinimumSize(JComponent c)
          Calculates the minimum size for the specified component.
 Dimension getPreferredSize(JComponent c)
          Calculate the preferred size of this component, by delegating to BasicGraphicsUtils.getPreferredButtonSize(javax.swing.AbstractButton, int).
protected  String getPropertyPrefix()
          Returns the prefix for the UI defaults property for this UI class.
protected  int getTextShiftOffset()
          Returns the text shift offset.
protected  void installDefaults(AbstractButton b)
          Installs the default settings.
protected  void installKeyboardActions(AbstractButton b)
           
protected  void installListeners(AbstractButton b)
          Installs listeners for the button.
 void installUI(JComponent c)
          Install the BasicButtonUI as the UI for a particular component.
 void paint(Graphics g, JComponent c)
          Paint the component, which is an AbstractButton, according to its current state.
protected  void paintButtonPressed(Graphics g, AbstractButton b)
          Paints the background area of an AbstractButton in the pressed state.
protected  void paintFocus(Graphics g, AbstractButton b, Rectangle vr, Rectangle tr, Rectangle ir)
          Paint any focus decoration this JComponent might have.
protected  void paintIcon(Graphics g, JComponent c, Rectangle iconRect)
          Paint the icon for this component.
protected  void paintText(Graphics g, AbstractButton b, Rectangle textRect, String text)
          Paints the "text" property of an AbstractButton.
protected  void paintText(Graphics g, JComponent c, Rectangle textRect, String text)
          Paints the "text" property of an AbstractButton.
protected  void setTextShiftOffset()
          Sets the text shift offset to the value in defaultTextShiftOffset.
protected  void uninstallDefaults(AbstractButton b)
          Removes the defaults added by installDefaults(AbstractButton).
protected  void uninstallKeyboardActions(AbstractButton b)
           
protected  void uninstallListeners(AbstractButton b)
          Uninstalls listeners for the button.
 void uninstallUI(JComponent c)
          Uninstalls the UI from the component.
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

defaultTextIconGap

protected int defaultTextIconGap
A constant used to pad out elements in the button's layout and preferred size calculations.


defaultTextShiftOffset

protected int defaultTextShiftOffset
A constant added to the defaultTextIconGap to adjust the text within this particular button.

Constructor Detail

BasicButtonUI

public BasicButtonUI()
Method Detail

createUI

public static ComponentUI createUI(JComponent c)
Factory method to create an instance of BasicButtonUI for a given JComponent, which should be an AbstractButton.

Parameters:
c - The component.
Returns:
A new UI capable of drawing the component

getDefaultTextIconGap

public int getDefaultTextIconGap(AbstractButton b)
Returns the default gap between the button's text and icon (in pixels).

Parameters:
b - the button (ignored).
Returns:
The gap.

clearTextShiftOffset

protected void clearTextShiftOffset()
Sets the text shift offset to zero.

See Also:
setTextShiftOffset()

getTextShiftOffset

protected int getTextShiftOffset()
Returns the text shift offset.

Returns:
The text shift offset.
See Also:
clearTextShiftOffset(), setTextShiftOffset()

setTextShiftOffset

protected void setTextShiftOffset()
Sets the text shift offset to the value in defaultTextShiftOffset.

See Also:
clearTextShiftOffset()

getPropertyPrefix

protected String getPropertyPrefix()
Returns the prefix for the UI defaults property for this UI class. This is 'Button' for this class.

Returns:
the prefix for the UI defaults property

installDefaults

protected void installDefaults(AbstractButton b)
Installs the default settings.

Parameters:
b - the button (null not permitted).

uninstallDefaults

protected void uninstallDefaults(AbstractButton b)
Removes the defaults added by installDefaults(AbstractButton).

Parameters:
b - the button (null not permitted).

createButtonListener

protected BasicButtonListener createButtonListener(AbstractButton b)
Creates and returns a new instance of BasicButtonListener. This method provides a hook to make it easy for subclasses to install a different listener.

Parameters:
b - the button.
Returns:
A new listener.

installListeners

protected void installListeners(AbstractButton b)
Installs listeners for the button.

Parameters:
b - the button (null not permitted).

uninstallListeners

protected void uninstallListeners(AbstractButton b)
Uninstalls listeners for the button.

Parameters:
b - the button (null not permitted).

installKeyboardActions

protected void installKeyboardActions(AbstractButton b)

uninstallKeyboardActions

protected void uninstallKeyboardActions(AbstractButton b)

installUI

public void installUI(JComponent c)
Install the BasicButtonUI as the UI for a particular component. This means registering all the UI's listeners with the component, and setting any properties of the button which are particular to this look and feel.

Overrides:
installUI in class ComponentUI
Parameters:
c - The component to install the UI into
See Also:
ComponentUI.uninstallUI(javax.swing.JComponent), JComponent.setUI(javax.swing.plaf.ComponentUI), JComponent.updateUI()

uninstallUI

public void uninstallUI(JComponent c)
Uninstalls the UI from the component.

Overrides:
uninstallUI in class ComponentUI
Parameters:
c - the component from which to uninstall the UI
See Also:
ComponentUI.installUI(javax.swing.JComponent), JComponent.setUI(javax.swing.plaf.ComponentUI), JComponent.updateUI()

getMinimumSize

public Dimension getMinimumSize(JComponent c)
Calculates the minimum size for the specified component.

Overrides:
getMinimumSize in class ComponentUI
Parameters:
c - the component for which to compute the minimum size
Returns:
the minimum size for the specified component

getMaximumSize

public Dimension getMaximumSize(JComponent c)
Calculates the maximum size for the specified component.

Overrides:
getMaximumSize in class ComponentUI
Parameters:
c - the component for which to compute the maximum size
Returns:
the maximum size for the specified component

getPreferredSize

public Dimension getPreferredSize(JComponent c)
Calculate the preferred size of this component, by delegating to BasicGraphicsUtils.getPreferredButtonSize(javax.swing.AbstractButton, int).

Overrides:
getPreferredSize in class ComponentUI
Parameters:
c - The component to measure
Returns:
The preferred dimensions of the component

paint

public void paint(Graphics g,
                  JComponent c)
Paint the component, which is an AbstractButton, according to its current state.

Overrides:
paint in class ComponentUI
Parameters:
g - The graphics context to paint with
c - The component to paint the state of

paintFocus

protected void paintFocus(Graphics g,
                          AbstractButton b,
                          Rectangle vr,
                          Rectangle tr,
                          Rectangle ir)
Paint any focus decoration this JComponent might have. The component, which in this case will be an AbstractButton, should only have focus decoration painted if it has the focus, and its "focusPainted" property is true.

Parameters:
g - Graphics context to paint with
b - Button to paint the focus of
vr - Visible rectangle, the area in which to paint
tr - Text rectangle, contained in visible rectangle
ir - Icon rectangle, contained in visible rectangle
See Also:
AbstractButton.isFocusPainted(), Component.hasFocus()

paintIcon

protected void paintIcon(Graphics g,
                         JComponent c,
                         Rectangle iconRect)
Paint the icon for this component. Depending on the state of the component and the availability of the button's various icon properties, this might mean painting one of several different icons.

Parameters:
g - Graphics context to paint with
c - Component to paint the icon of
iconRect - Rectangle in which the icon should be painted

paintButtonPressed

protected void paintButtonPressed(Graphics g,
                                  AbstractButton b)
Paints the background area of an AbstractButton in the pressed state. This means filling the supplied area with a darker than normal background.

Parameters:
g - The graphics context to paint with
b - The button to paint the state of

paintText

protected void paintText(Graphics g,
                         JComponent c,
                         Rectangle textRect,
                         String text)
Paints the "text" property of an AbstractButton.

Parameters:
g - The graphics context to paint with
c - The component to paint the state of
textRect - The area in which to paint the text
text - The text to paint

paintText

protected void paintText(Graphics g,
                         AbstractButton b,
                         Rectangle textRect,
                         String text)
Paints the "text" property of an AbstractButton.

Parameters:
g - The graphics context to paint with
b - The button to paint the state of
textRect - The area in which to paint the text
text - The text to paint
Since:
1.4