- All Implemented Interfaces:
ImageObserver
,ItemSelectable
,MenuContainer
,Serializable
,SwingConstants
- Direct Known Subclasses:
JButton
,JMenuItem
,JToggleButton
Buttons can be configured, and to some degree controlled, by
Action
s. Using an
Action
with a button has many benefits beyond directly
configuring a button. Refer to
Swing Components Supporting Action
for more
details, and you can find more information in How
to Use Actions, a section in The Java Tutorial.
For further information see How to Use Buttons, Check Boxes, and Radio Buttons, a section in The Java Tutorial.
Warning:
Serialized objects of this class will not be compatible with
future Swing releases. The current serialization support is
appropriate for short term storage or RMI between applications running
the same version of Swing. As of 1.4, support for long term storage
of all JavaBeans
has been added to the java.beans
package.
Please see XMLEncoder
.
- Since:
- 1.2
-
Nested Class Summary
Modifier and TypeClassDescriptionprotected class
This class implements accessibility support for theAbstractButton
class.protected class
ExtendsChangeListener
to be serializable.Nested classes/interfaces declared in class javax.swing.JComponent
JComponent.AccessibleJComponent
Nested classes/interfaces declared in class java.awt.Container
Container.AccessibleAWTContainer
Nested classes/interfaces declared in class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
Field Summary
Modifier and TypeFieldDescriptionprotected ActionListener
The button model'sActionListener
.static final String
Identifies a change to having the border drawn, or having it not drawn.protected ChangeEvent
Only oneChangeEvent
is needed per button instance since the event's only state is the source property.protected ChangeListener
The button model'schangeListener
.static final String
Identifies a change to having the button paint the content area.static final String
Identifies a change to the icon used when the button has been disabled.static final String
Identifies a change to the icon used when the button has been disabled and selected.static final String
Identifies a change to having the border highlighted when focused, or not.static final String
Identifies a change in the button's horizontal alignment.static final String
Identifies a change in the button's horizontal text position.static final String
Identifies a change to the icon that represents the button.protected ItemListener
The button model'sItemListener
.static final String
Identifies a change in the button's margins.static final String
Identifies a change to the button's mnemonic.protected ButtonModel
The data model that determines the button's state.static final String
Identifies a change in the button model.static final String
Identifies a change to the icon used when the button has been pressed.static final String
Identifies a change from rollover enabled to disabled or back to enabled.static final String
Identifies a change to the icon used when the cursor is over the button.static final String
Identifies a change to the icon used when the cursor is over the button and it has been selected.static final String
Identifies a change to the icon used when the button has been selected.static final String
Identifies a change in the button's text.static final String
Identifies a change in the button's vertical alignment.static final String
Identifies a change in the button's vertical text position.Fields declared in class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
Fields declared in class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Fields declared in interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Fields declared in 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
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
actionPropertyChanged
(Action action, String propertyName) Updates the button's state in response to property changes in the associated action.void
Adds anActionListener
to the button.void
Adds aChangeListener
to the button.protected void
Adds the specified component to this container at the specified index, refer toContainer.addImpl(Component, Object, int)
for a complete description of this method.void
Adds anItemListener
to thecheckbox
.protected int
checkHorizontalKey
(int key, String exception) Verify that thekey
argument is a legal value for thehorizontalAlignment
andhorizontalTextPosition
properties.protected int
checkVerticalKey
(int key, String exception) Verify that thekey
argument is a legal value for the vertical properties.protected void
Sets the properties on this button to match those in the specifiedAction
.protected ActionListener
ReturnsActionListener
that is added to model.protected PropertyChangeListener
Creates and returns aPropertyChangeListener
that is responsible for listening for changes from the specifiedAction
and updating the appropriate properties.protected ChangeListener
Subclasses that want to handleChangeEvents
differently can override this to return anotherChangeListener
implementation.protected ItemListener
ReturnsItemListener
that is added to model.void
doClick()
Programmatically perform a "click".void
doClick
(int pressTime) Programmatically perform a "click".protected void
fireActionPerformed
(ActionEvent event) Notifies all listeners that have registered interest for notification on this event type.protected void
fireItemStateChanged
(ItemEvent event) Notifies all listeners that have registered interest for notification on this event type.protected void
Notifies all listeners that have registered interest for notification on this event type.Returns the currently setAction
for thisActionEvent
source, ornull
if noAction
is set.Returns the action command for this button.Returns an array of all theActionListener
s added to this AbstractButton with addActionListener().Returns an array of all theChangeListener
s added to this AbstractButton with addChangeListener().Returns the icon used by the button when it's disabled.Returns the icon used by the button when it's disabled and selected.int
Returns the character, as an index, that the look and feel should provide decoration for as representing the mnemonic character.boolean
Returns the value of thehideActionText
property, which determines whether the button displays text from theAction
.int
Returns the horizontal alignment of the icon and text.int
Returns the horizontal position of the text relative to the icon.getIcon()
Returns the default icon.int
Returns the amount of space between the text and the icon displayed in this button.Returns an array of all theItemListener
s added to this AbstractButton with addItemListener().getLabel()
Deprecated.Returns the margin between the button's border and the label.int
Returns the keyboard mnemonic from the current model.getModel()
Returns the model that this button represents.long
Gets the amount of time (in milliseconds) required between mouse press events for the button to generate the corresponding action events.Returns the pressed icon for the button.Returns the rollover icon for the button.Returns the rollover selection icon for the button.Returns the selected icon for the button.Object[]
Returns an array (length 1) containing the label ornull
if the button is not selected.getText()
Returns the button's text.getUI()
Returns the L&F object that renders this component.int
Returns the vertical alignment of the text and icon.int
Returns the vertical position of the text relative to the icon.boolean
imageUpdate
(Image img, int infoflags, int x, int y, int w, int h) If the button icon for the current button state is eithernull
or not anImageIcon
with anImage
equal to the passed inImage
, returnfalse
; otherwise it will delegate to the super-class.protected void
Initialization of theAbstractButton
.boolean
Gets theborderPainted
property.boolean
Gets thecontentAreaFilled
property.boolean
Gets thepaintFocus
property.boolean
Gets therolloverEnabled
property.boolean
Returns the state of the button.protected void
Paint the button's border ifBorderPainted
property is true and the button has a border.protected String
Returns a string representation of thisAbstractButton
.void
Removes anActionListener
from the button.void
Removes a ChangeListener from the button.void
Removes anItemListener
from the button.void
Notifies this component that it no longer has a parent component.void
Sets theAction
.void
setActionCommand
(String actionCommand) Sets the action command for this button.void
setBorderPainted
(boolean b) Sets theborderPainted
property.void
setContentAreaFilled
(boolean b) Sets thecontentAreaFilled
property.void
setDisabledIcon
(Icon disabledIcon) Sets the disabled icon for the button.void
setDisabledSelectedIcon
(Icon disabledSelectedIcon) Sets the disabled selection icon for the button.void
setDisplayedMnemonicIndex
(int index) Provides a hint to the look and feel as to which character in the text should be decorated to represent the mnemonic.void
setEnabled
(boolean b) Enables (or disables) the button.void
setFocusPainted
(boolean b) Sets thepaintFocus
property, which must betrue
for the focus state to be painted.void
setHideActionText
(boolean hideActionText) Sets thehideActionText
property, which determines whether the button displays text from theAction
.void
setHorizontalAlignment
(int alignment) Sets the horizontal alignment of the icon and text.void
setHorizontalTextPosition
(int textPosition) Sets the horizontal position of the text relative to the icon.void
Sets the button's default icon.void
setIconTextGap
(int iconTextGap) If both the icon and text properties are set, this property defines the space between them.void
Deprecated.- Replaced bysetText(text)
void
setLayout
(LayoutManager mgr) Sets the layout manager for this container, refer toContainer.setLayout(LayoutManager)
for a complete description of this method.void
Sets space for margin between the button's border and the label.void
setMnemonic
(char mnemonic) This method is now obsolete, please usesetMnemonic(int)
to set the mnemonic for a button.void
setMnemonic
(int mnemonic) Sets the keyboard mnemonic on the current model.void
setModel
(ButtonModel newModel) Sets the model that this button represents.void
setMultiClickThreshhold
(long threshold) Sets the amount of time (in milliseconds) required between mouse press events for the button to generate the corresponding action events.void
setPressedIcon
(Icon pressedIcon) Sets the pressed icon for the button.void
setRolloverEnabled
(boolean b) Sets therolloverEnabled
property, which must betrue
for rollover effects to occur.void
setRolloverIcon
(Icon rolloverIcon) Sets the rollover icon for the button.void
setRolloverSelectedIcon
(Icon rolloverSelectedIcon) Sets the rollover selected icon for the button.void
setSelected
(boolean b) Sets the state of the button.void
setSelectedIcon
(Icon selectedIcon) Sets the selected icon for the button.void
Sets the button's text.void
Sets the L&F object that renders this component.void
setVerticalAlignment
(int alignment) Sets the vertical alignment of the icon and text.void
setVerticalTextPosition
(int textPosition) Sets the vertical position of the text relative to the icon.void
updateUI()
Resets the UI property to a value from the current look and feel.Methods declared in class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
Methods declared in class java.awt.Container
add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, transferFocusDownCycle, validate, validateTree
Methods declared in class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Field Details
-
MODEL_CHANGED_PROPERTY
Identifies a change in the button model.- See Also:
-
TEXT_CHANGED_PROPERTY
Identifies a change in the button's text.- See Also:
-
MNEMONIC_CHANGED_PROPERTY
Identifies a change to the button's mnemonic.- See Also:
-
MARGIN_CHANGED_PROPERTY
Identifies a change in the button's margins.- See Also:
-
VERTICAL_ALIGNMENT_CHANGED_PROPERTY
Identifies a change in the button's vertical alignment.- See Also:
-
HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY
Identifies a change in the button's horizontal alignment.- See Also:
-
VERTICAL_TEXT_POSITION_CHANGED_PROPERTY
Identifies a change in the button's vertical text position.- See Also:
-
HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY
Identifies a change in the button's horizontal text position.- See Also:
-
BORDER_PAINTED_CHANGED_PROPERTY
Identifies a change to having the border drawn, or having it not drawn.- See Also:
-
FOCUS_PAINTED_CHANGED_PROPERTY
Identifies a change to having the border highlighted when focused, or not.- See Also:
-
ROLLOVER_ENABLED_CHANGED_PROPERTY
Identifies a change from rollover enabled to disabled or back to enabled.- See Also:
-
CONTENT_AREA_FILLED_CHANGED_PROPERTY
Identifies a change to having the button paint the content area.- See Also:
-
ICON_CHANGED_PROPERTY
Identifies a change to the icon that represents the button.- See Also:
-
PRESSED_ICON_CHANGED_PROPERTY
Identifies a change to the icon used when the button has been pressed.- See Also:
-
SELECTED_ICON_CHANGED_PROPERTY
Identifies a change to the icon used when the button has been selected.- See Also:
-
ROLLOVER_ICON_CHANGED_PROPERTY
Identifies a change to the icon used when the cursor is over the button.- See Also:
-
ROLLOVER_SELECTED_ICON_CHANGED_PROPERTY
Identifies a change to the icon used when the cursor is over the button and it has been selected.- See Also:
-
DISABLED_ICON_CHANGED_PROPERTY
Identifies a change to the icon used when the button has been disabled.- See Also:
-
DISABLED_SELECTED_ICON_CHANGED_PROPERTY
Identifies a change to the icon used when the button has been disabled and selected.- See Also:
-
model
The data model that determines the button's state. -
changeListener
The button model'schangeListener
. -
actionListener
The button model'sActionListener
. -
itemListener
The button model'sItemListener
. -
changeEvent
Only oneChangeEvent
is needed per button instance since the event's only state is the source property. The source of events generated is always "this".
-
-
Constructor Details
-
AbstractButton
protected AbstractButton()Constructor for subclasses to call.
-
-
Method Details
-
setHideActionText
@BeanProperty(expert=true, description="Whether the text of the button should come from the <code>Action</code>.") public void setHideActionText(boolean hideActionText) Sets thehideActionText
property, which determines whether the button displays text from theAction
. This is useful only if anAction
has been installed on the button.- Parameters:
hideActionText
-true
if the button'stext
property should not reflect that of theAction
; the default isfalse
- Since:
- 1.6
- See Also:
-
getHideActionText
public boolean getHideActionText()Returns the value of thehideActionText
property, which determines whether the button displays text from theAction
. This is useful only if anAction
has been installed on the button.- Returns:
true
if the button'stext
property should not reflect that of theAction
; the default isfalse
- Since:
- 1.6
-
getText
-
setText
@BeanProperty(preferred=true, visualUpdate=true, description="The button\'s text.") public void setText(String text) Sets the button's text.- Parameters:
text
- the string used to set the text- See Also:
-
isSelected
public boolean isSelected()Returns the state of the button. True if the toggle button is selected, false if it's not.- Returns:
- true if the toggle button is selected, otherwise false
-
setSelected
public void setSelected(boolean b) Sets the state of the button. Note that this method does not trigger anactionEvent
. CalldoClick
to perform a programmatic action change.- Parameters:
b
- true if the button is selected, otherwise false
-
doClick
public void doClick()Programmatically perform a "click". This does the same thing as if the user had pressed and released the button. -
doClick
public void doClick(int pressTime) Programmatically perform a "click". This does the same thing as if the user had pressed and released the button. The button stays visually "pressed" forpressTime
milliseconds.- Parameters:
pressTime
- the time to "hold down" the button, in milliseconds
-
setMargin
@BeanProperty(visualUpdate=true, description="The space between the button\'s border and the label.") public void setMargin(Insets m) Sets space for margin between the button's border and the label. Setting tonull
will cause the button to use the default margin. The button's defaultBorder
object will use this value to create the proper margin. However, if a non-default border is set on the button, it is thatBorder
object's responsibility to create the appropriate margin space (else this property will effectively be ignored).- Parameters:
m
- the space between the border and the label
-
getMargin
Returns the margin between the button's border and the label.- Returns:
- an
Insets
object specifying the margin between the botton's border and the label - See Also:
-
getIcon
-
setIcon
@BeanProperty(visualUpdate=true, description="The button\'s default icon") public void setIcon(Icon defaultIcon) Sets the button's default icon. This icon is also used as the "pressed" and "disabled" icon if there is no explicitly set pressed icon.- Parameters:
defaultIcon
- the icon used as the default image- See Also:
-
getPressedIcon
Returns the pressed icon for the button.- Returns:
- the
pressedIcon
property - See Also:
-
setPressedIcon
@BeanProperty(visualUpdate=true, description="The pressed icon for the button.") public void setPressedIcon(Icon pressedIcon) Sets the pressed icon for the button.- Parameters:
pressedIcon
- the icon used as the "pressed" image- See Also:
-
getSelectedIcon
Returns the selected icon for the button.- Returns:
- the
selectedIcon
property - See Also:
-
setSelectedIcon
@BeanProperty(visualUpdate=true, description="The selected icon for the button.") public void setSelectedIcon(Icon selectedIcon) Sets the selected icon for the button.- Parameters:
selectedIcon
- the icon used as the "selected" image- See Also:
-
getRolloverIcon
Returns the rollover icon for the button.- Returns:
- the
rolloverIcon
property - See Also:
-
setRolloverIcon
@BeanProperty(visualUpdate=true, description="The rollover icon for the button.") public void setRolloverIcon(Icon rolloverIcon) Sets the rollover icon for the button.- Parameters:
rolloverIcon
- the icon used as the "rollover" image- See Also:
-
getRolloverSelectedIcon
Returns the rollover selection icon for the button.- Returns:
- the
rolloverSelectedIcon
property - See Also:
-
setRolloverSelectedIcon
@BeanProperty(visualUpdate=true, description="The rollover selected icon for the button.") public void setRolloverSelectedIcon(Icon rolloverSelectedIcon) Sets the rollover selected icon for the button.- Parameters:
rolloverSelectedIcon
- the icon used as the "selected rollover" image- See Also:
-
getDisabledIcon
Returns the icon used by the button when it's disabled. If no disabled icon has been set this will forward the call to the look and feel to construct an appropriate disabled Icon.Some look and feels might not render the disabled Icon, in which case they will ignore this.
- Returns:
- the
disabledIcon
property - See Also:
-
setDisabledIcon
@BeanProperty(visualUpdate=true, description="The disabled icon for the button.") public void setDisabledIcon(Icon disabledIcon) Sets the disabled icon for the button.- Parameters:
disabledIcon
- the icon used as the disabled image- See Also:
-
getDisabledSelectedIcon
Returns the icon used by the button when it's disabled and selected. If no disabled selection icon has been set, this will forward the call to the LookAndFeel to construct an appropriate disabled Icon from the selection icon if it has been set and togetDisabledIcon()
otherwise.Some look and feels might not render the disabled selected Icon, in which case they will ignore this.
- Returns:
- the
disabledSelectedIcon
property - See Also:
-
setDisabledSelectedIcon
@BeanProperty(visualUpdate=true, description="The disabled selection icon for the button.") public void setDisabledSelectedIcon(Icon disabledSelectedIcon) Sets the disabled selection icon for the button.- Parameters:
disabledSelectedIcon
- the icon used as the disabled selection image- See Also:
-
getVerticalAlignment
public int getVerticalAlignment()Returns the vertical alignment of the text and icon.- Returns:
- the
verticalAlignment
property, one of the following values:SwingConstants.CENTER
(the default)SwingConstants.TOP
SwingConstants.BOTTOM
-
setVerticalAlignment
@BeanProperty(visualUpdate=true, enumerationValues={"SwingConstants.TOP","SwingConstants.CENTER","SwingConstants.BOTTOM"}, description="The vertical alignment of the icon and text.") public void setVerticalAlignment(int alignment) Sets the vertical alignment of the icon and text.- Parameters:
alignment
- one of the following values:SwingConstants.CENTER
(the default)SwingConstants.TOP
SwingConstants.BOTTOM
- Throws:
IllegalArgumentException
- if the alignment is not one of the legal values listed above
-
getHorizontalAlignment
public int getHorizontalAlignment()Returns the horizontal alignment of the icon and text.AbstractButton
's default isSwingConstants.CENTER
, but subclasses such asJCheckBox
may use a different default.- Returns:
- the
horizontalAlignment
property, one of the following values:SwingConstants.RIGHT
SwingConstants.LEFT
SwingConstants.CENTER
SwingConstants.LEADING
SwingConstants.TRAILING
-
setHorizontalAlignment
@BeanProperty(visualUpdate=true, enumerationValues={"SwingConstants.LEFT","SwingConstants.CENTER","SwingConstants.RIGHT","SwingConstants.LEADING","SwingConstants.TRAILING"}, description="The horizontal alignment of the icon and text.") public void setHorizontalAlignment(int alignment) Sets the horizontal alignment of the icon and text.AbstractButton
's default isSwingConstants.CENTER
, but subclasses such asJCheckBox
may use a different default.- Parameters:
alignment
- the alignment value, one of the following values:SwingConstants.RIGHT
SwingConstants.LEFT
SwingConstants.CENTER
SwingConstants.LEADING
SwingConstants.TRAILING
- Throws:
IllegalArgumentException
- if the alignment is not one of the valid values
-
getVerticalTextPosition
public int getVerticalTextPosition()Returns the vertical position of the text relative to the icon.- Returns:
- the
verticalTextPosition
property, one of the following values:SwingConstants.CENTER
(the default)SwingConstants.TOP
SwingConstants.BOTTOM
-
setVerticalTextPosition
@BeanProperty(visualUpdate=true, enumerationValues={"SwingConstants.TOP","SwingConstants.CENTER","SwingConstants.BOTTOM"}, description="The vertical position of the text relative to the icon.") public void setVerticalTextPosition(int textPosition) Sets the vertical position of the text relative to the icon.- Parameters:
textPosition
- one of the following values:SwingConstants.CENTER
(the default)SwingConstants.TOP
SwingConstants.BOTTOM
-
getHorizontalTextPosition
public int getHorizontalTextPosition()Returns the horizontal position of the text relative to the icon.- Returns:
- the
horizontalTextPosition
property, one of the following values:SwingConstants.RIGHT
SwingConstants.LEFT
SwingConstants.CENTER
SwingConstants.LEADING
SwingConstants.TRAILING
(the default)
-
setHorizontalTextPosition
@BeanProperty(visualUpdate=true, enumerationValues={"SwingConstants.LEFT","SwingConstants.CENTER","SwingConstants.RIGHT","SwingConstants.LEADING","SwingConstants.TRAILING"}, description="The horizontal position of the text relative to the icon.") public void setHorizontalTextPosition(int textPosition) Sets the horizontal position of the text relative to the icon.- Parameters:
textPosition
- one of the following values:SwingConstants.RIGHT
SwingConstants.LEFT
SwingConstants.CENTER
SwingConstants.LEADING
SwingConstants.TRAILING
(the default)
- Throws:
IllegalArgumentException
- iftextPosition
is not one of the legal values listed above
-
getIconTextGap
public int getIconTextGap()Returns the amount of space between the text and the icon displayed in this button.- Returns:
- an int equal to the number of pixels between the text and the icon.
- Since:
- 1.4
- See Also:
-
setIconTextGap
@BeanProperty(visualUpdate=true, description="If both the icon and text properties are set, this property defines the space between them.") public void setIconTextGap(int iconTextGap) If both the icon and text properties are set, this property defines the space between them.The default value of this property is 4 pixels.
This is a JavaBeans bound property.
- Parameters:
iconTextGap
- the space between icon and text if these properties are set.- Since:
- 1.4
- See Also:
-
checkHorizontalKey
Verify that thekey
argument is a legal value for thehorizontalAlignment
andhorizontalTextPosition
properties. Valid values are:SwingConstants.RIGHT
SwingConstants.LEFT
SwingConstants.CENTER
SwingConstants.LEADING
SwingConstants.TRAILING
- Parameters:
key
- the property value to checkexception
- the message to use in theIllegalArgumentException
that is thrown for an invalid value- Returns:
- the
key
argument - Throws:
IllegalArgumentException
- if key is not one of the legal values listed above- See Also:
-
checkVerticalKey
Verify that thekey
argument is a legal value for the vertical properties. Valid values are:SwingConstants.CENTER
SwingConstants.TOP
SwingConstants.BOTTOM
- Parameters:
key
- the property value to checkexception
- the message to use in theIllegalArgumentException
that is thrown for an invalid value- Returns:
- the
key
argument - Throws:
IllegalArgumentException
- if key is not one of the legal values listed above
-
removeNotify
public void removeNotify()Notifies this component that it no longer has a parent component. When this method is invoked, anyKeyboardAction
s set up in the chain of parent components are removed. This method is called by the toolkit internally and should not be called directly by programs.- Overrides:
removeNotify
in classJComponent
- Since:
- 1.6
- See Also:
-
setActionCommand
Sets the action command for this button.- Parameters:
actionCommand
- the action command for this button
-
getActionCommand
Returns the action command for this button.- Returns:
- the action command for this button
-
setAction
@BeanProperty(visualUpdate=true, description="the Action instance connected with this ActionEvent source") public void setAction(Action a) Sets theAction
. The newAction
replaces any previously setAction
but does not affectActionListeners
independently added withaddActionListener
. If theAction
is already a registeredActionListener
for the button, it is not re-registered.Setting the
Action
results in immediately changing all the properties described in Swing Components SupportingAction
. Subsequently, the button's properties are automatically updated as theAction
's properties change.This method uses three other methods to set and help track the
Action
's property values. It uses theconfigurePropertiesFromAction
method to immediately change the button's properties. To track changes in theAction
's property values, this method registers thePropertyChangeListener
returned bycreateActionPropertyChangeListener
. The defaultPropertyChangeListener
invokes theactionPropertyChanged
method when a property in theAction
changes.- Parameters:
a
- theAction
for theAbstractButton
, ornull
- Since:
- 1.3
- See Also:
-
getAction
Returns the currently setAction
for thisActionEvent
source, ornull
if noAction
is set.- Returns:
- the
Action
for thisActionEvent
source, ornull
- Since:
- 1.3
- See Also:
-
configurePropertiesFromAction
Sets the properties on this button to match those in the specifiedAction
. Refer to Swing Components SupportingAction
for more details as to which properties this sets.- Parameters:
a
- theAction
from which to get the properties, ornull
- Since:
- 1.3
- See Also:
-
actionPropertyChanged
Updates the button's state in response to property changes in the associated action. This method is invoked from thePropertyChangeListener
returned fromcreateActionPropertyChangeListener
. Subclasses do not normally need to invoke this. Subclasses that support additionalAction
properties should override this andconfigurePropertiesFromAction
.Refer to the table at Swing Components Supporting
Action
for a list of the properties this method sets.- Parameters:
action
- theAction
associated with this buttonpropertyName
- the name of the property that changed- Since:
- 1.6
- See Also:
-
createActionPropertyChangeListener
Creates and returns aPropertyChangeListener
that is responsible for listening for changes from the specifiedAction
and updating the appropriate properties.Warning: If you subclass this do not create an anonymous inner class. If you do the lifetime of the button will be tied to that of the
Action
.- Parameters:
a
- the button's action- Returns:
- the
PropertyChangeListener
- Since:
- 1.3
- See Also:
-
isBorderPainted
public boolean isBorderPainted()Gets theborderPainted
property.- Returns:
- the value of the
borderPainted
property - See Also:
-
setBorderPainted
@BeanProperty(visualUpdate=true, description="Whether the border should be painted.") public void setBorderPainted(boolean b) Sets theborderPainted
property. Iftrue
and the button has a border, the border is painted. The default value for theborderPainted
property istrue
.Some look and feels might not support the
borderPainted
property, in which case they ignore this.- Parameters:
b
- if true and border property is notnull
, the border is painted- See Also:
-
paintBorder
Paint the button's border ifBorderPainted
property is true and the button has a border.- Overrides:
paintBorder
in classJComponent
- Parameters:
g
- theGraphics
context in which to paint- See Also:
-
isFocusPainted
public boolean isFocusPainted()Gets thepaintFocus
property.- Returns:
- the
paintFocus
property - See Also:
-
setFocusPainted
@BeanProperty(visualUpdate=true, description="Whether focus should be painted") public void setFocusPainted(boolean b) Sets thepaintFocus
property, which must betrue
for the focus state to be painted. The default value for thepaintFocus
property istrue
. Some look and feels might not paint focus state; they will ignore this property.- Parameters:
b
- iftrue
, the focus state should be painted- See Also:
-
isContentAreaFilled
public boolean isContentAreaFilled()Gets thecontentAreaFilled
property.- Returns:
- the
contentAreaFilled
property - See Also:
-
setContentAreaFilled
@BeanProperty(visualUpdate=true, description="Whether the button should paint the content area or leave it transparent.") public void setContentAreaFilled(boolean b) Sets thecontentAreaFilled
property. Iftrue
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 tofalse
. Do not callsetOpaque(false)
. The default value for thecontentAreaFilled
property istrue
.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.
- Parameters:
b
- if true, the content should be filled; if false the content area is not filled- See Also:
-
isRolloverEnabled
public boolean isRolloverEnabled()Gets therolloverEnabled
property.- Returns:
- the value of the
rolloverEnabled
property - See Also:
-
setRolloverEnabled
@BeanProperty(visualUpdate=true, description="Whether rollover effects should be enabled.") public void setRolloverEnabled(boolean b) Sets therolloverEnabled
property, which must betrue
for rollover effects to occur. The default value for therolloverEnabled
property isfalse
. Some look and feels might not implement rollover effects; they will ignore this property.- Parameters:
b
- iftrue
, rollover effects should be painted- See Also:
-
getMnemonic
public int getMnemonic()Returns the keyboard mnemonic from the current model.- Returns:
- the keyboard mnemonic from the model
-
setMnemonic
@BeanProperty(visualUpdate=true, description="the keyboard character mnemonic") public void setMnemonic(int mnemonic) Sets the keyboard mnemonic on the current model. The mnemonic is the key which when combined with the look and feel's mouseless modifier (usually Alt) will activate this button if focus is contained somewhere within this button's ancestor window.A mnemonic must correspond to a single key on the keyboard and should be specified using one of the
VK_XXX
keycodes defined injava.awt.event.KeyEvent
. These codes and the wider array of codes for international keyboards may be obtained throughjava.awt.event.KeyEvent.getExtendedKeyCodeForChar
. Mnemonics are case-insensitive, therefore a key event with the corresponding keycode would cause the button to be activated whether or not the Shift modifier was pressed.If the character defined by the mnemonic is found within the button's label string, the first occurrence of it will be underlined to indicate the mnemonic to the user.
- Parameters:
mnemonic
- the key code which represents the mnemonic- See Also:
-
setMnemonic
@BeanProperty(visualUpdate=true, description="the keyboard character mnemonic") public void setMnemonic(char mnemonic) This method is now obsolete, please usesetMnemonic(int)
to set the mnemonic for a button. This method is only designed to handle character values which fall between 'a' and 'z' or 'A' and 'Z'.- Parameters:
mnemonic
- a char specifying the mnemonic value- See Also:
-
setDisplayedMnemonicIndex
@BeanProperty(visualUpdate=true, description="the index into the String to draw the keyboard character mnemonic at") public void setDisplayedMnemonicIndex(int index) throws IllegalArgumentException Provides a hint to the look and feel as to which character in the text should be decorated to represent the mnemonic. Not all look and feels may support this. A value of -1 indicates either there is no mnemonic, the mnemonic character is not contained in the string, or the developer does not wish the mnemonic to be displayed.The value of this is updated as the properties relating to the mnemonic change (such as the mnemonic itself, the text...). You should only ever have to call this if you do not wish the default character to be underlined. For example, if the text was 'Save As', with a mnemonic of 'a', and you wanted the 'A' to be decorated, as 'Save As', you would have to invoke
setDisplayedMnemonicIndex(5)
after invokingsetMnemonic(KeyEvent.VK_A)
.- Parameters:
index
- Index into the String to underline- Throws:
IllegalArgumentException
- will be thrown ifindex
is >= length of the text, or < -1- Since:
- 1.4
- See Also:
-
getDisplayedMnemonicIndex
public int getDisplayedMnemonicIndex()Returns the character, as an index, that the look and feel should provide decoration for as representing the mnemonic character.- Returns:
- index representing mnemonic character
- Since:
- 1.4
- See Also:
-
setMultiClickThreshhold
public void setMultiClickThreshhold(long threshold) Sets the amount of time (in milliseconds) required between mouse press events for the button to generate the corresponding action events. After the initial mouse press occurs (and action event generated) any subsequent mouse press events which occur on intervals less than the threshold will be ignored and no corresponding action event generated. By default the threshold is 0, which means that for each mouse press, an action event will be fired, no matter how quickly the mouse clicks occur. In buttons where this behavior is not desirable (for example, the "OK" button in a dialog), this threshold should be set to an appropriate positive value.- Parameters:
threshold
- the amount of time required between mouse press events to generate corresponding action events- Throws:
IllegalArgumentException
- if threshold < 0- Since:
- 1.4
- See Also:
-
getMultiClickThreshhold
public long getMultiClickThreshhold()Gets the amount of time (in milliseconds) required between mouse press events for the button to generate the corresponding action events.- Returns:
- the amount of time required between mouse press events to generate corresponding action events
- Since:
- 1.4
- See Also:
-
getModel
Returns the model that this button represents.- Returns:
- the
model
property - See Also:
-
setModel
Sets the model that this button represents.- Parameters:
newModel
- the newButtonModel
- See Also:
-
getUI
Returns the L&F object that renders this component.- Overrides:
getUI
in classJComponent
- Returns:
- the ButtonUI object
- See Also:
-
setUI
@BeanProperty(hidden=true, visualUpdate=true, description="The UI object that implements the LookAndFeel.") public void setUI(ButtonUI ui) Sets the L&F object that renders this component.- Parameters:
ui
- theButtonUI
L&F object- See Also:
-
updateUI
public void updateUI()Resets the UI property to a value from the current look and feel. Subtypes ofAbstractButton
should override this to update the UI. For example,JButton
might do the following:setUI((ButtonUI)UIManager.getUI( "ButtonUI", "javax.swing.plaf.basic.BasicButtonUI", this));
- Overrides:
updateUI
in classJComponent
- See Also:
-
addImpl
Adds the specified component to this container at the specified index, refer toContainer.addImpl(Component, Object, int)
for a complete description of this method.- Overrides:
addImpl
in classContainer
- Parameters:
comp
- the component to be addedconstraints
- an object expressing layout constraints for this componentindex
- the position in the container's list at which to insert the component, where-1
means append to the end- Throws:
IllegalArgumentException
- ifindex
is invalidIllegalArgumentException
- if adding the container's parent to itselfIllegalArgumentException
- if adding a window to a container- Since:
- 1.5
- See Also:
-
setLayout
Sets the layout manager for this container, refer toContainer.setLayout(LayoutManager)
for a complete description of this method. -
addChangeListener
Adds aChangeListener
to the button.- Parameters:
l
- the listener to be added
-
removeChangeListener
Removes a ChangeListener from the button.- Parameters:
l
- the listener to be removed
-
getChangeListeners
Returns an array of all theChangeListener
s added to this AbstractButton with addChangeListener().- Returns:
- all of the
ChangeListener
s added or an empty array if no listeners have been added - Since:
- 1.4
-
fireStateChanged
protected void fireStateChanged()Notifies all listeners that have registered interest for notification on this event type. The event instance is lazily created.- See Also:
-
addActionListener
Adds anActionListener
to the button.- Parameters:
l
- theActionListener
to be added
-
removeActionListener
Removes anActionListener
from the button. If the listener is the currently setAction
for the button, then theAction
is set tonull
.- Parameters:
l
- the listener to be removed
-
getActionListeners
Returns an array of all theActionListener
s added to this AbstractButton with addActionListener().- Returns:
- all of the
ActionListener
s added or an empty array if no listeners have been added - Since:
- 1.4
-
createChangeListener
Subclasses that want to handleChangeEvents
differently can override this to return anotherChangeListener
implementation.- Returns:
- the new
ChangeListener
-
fireActionPerformed
Notifies all listeners that have registered interest for notification on this event type. The event instance is lazily created using theevent
parameter.- Parameters:
event
- theActionEvent
object- See Also:
-
fireItemStateChanged
Notifies all listeners that have registered interest for notification on this event type. The event instance is lazily created using theevent
parameter.- Parameters:
event
- theItemEvent
object- See Also:
-
createActionListener
ReturnsActionListener
that is added to model.- Returns:
- the
ActionListener
-
createItemListener
ReturnsItemListener
that is added to model.- Returns:
- the
ItemListener
-
setEnabled
public void setEnabled(boolean b) Enables (or disables) the button.- Overrides:
setEnabled
in classJComponent
- Parameters:
b
- true to enable the button, otherwise false- See Also:
-
getLabel
Deprecated.- Replaced bygetText
Returns the label text.- Returns:
- a
String
containing the label
-
setLabel
@Deprecated @BeanProperty(description="Replace by setText(text)") public void setLabel(String label) Deprecated.- Replaced bysetText(text)
Sets the label text.- Parameters:
label
- aString
containing the text
-
addItemListener
Adds anItemListener
to thecheckbox
.- Specified by:
addItemListener
in interfaceItemSelectable
- Parameters:
l
- theItemListener
to be added- See Also:
-
removeItemListener
Removes anItemListener
from the button.- Specified by:
removeItemListener
in interfaceItemSelectable
- Parameters:
l
- theItemListener
to be removed- See Also:
-
getItemListeners
Returns an array of all theItemListener
s added to this AbstractButton with addItemListener().- Returns:
- all of the
ItemListener
s added or an empty array if no listeners have been added - Since:
- 1.4
-
getSelectedObjects
Returns an array (length 1) containing the label ornull
if the button is not selected.- Specified by:
getSelectedObjects
in interfaceItemSelectable
- Returns:
- an array containing 1 Object: the text of the button,
if the item is selected; otherwise
null
-
init
-
imageUpdate
If the button icon for the current button state is eithernull
or not anImageIcon
with anImage
equal to the passed inImage
, returnfalse
; otherwise it will delegate to the super-class.- Specified by:
imageUpdate
in interfaceImageObserver
- Overrides:
imageUpdate
in classComponent
- Parameters:
img
- theImage
to be comparedinfoflags
- flags used to repaint the button when the image is updated and which determine how much is to be paintedx
- the x coordinatey
- the y coordinatew
- the widthh
- the height- Returns:
false
if the infoflags indicate that the image is completely loaded;true
otherwise.- See Also:
-
paramString
Returns a string representation of thisAbstractButton
. This method is intended to be used only for debugging purposes, and the content and format of the returned string may vary between implementations. The returned string may be empty but may not benull
.Overriding
paramString
to provide information about the specific new aspects of the JFC components.- Overrides:
paramString
in classJComponent
- Returns:
- a string representation of this
AbstractButton
-
getText