com.jidesoft.swing
Class JideSplitButton
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.AbstractButton
javax.swing.JMenuItem
javax.swing.JMenu
com.jidesoft.swing.JideMenu
com.jidesoft.swing.JideSplitButton
- All Implemented Interfaces:
- Alignable, ButtonStyle, ComponentStateSupport, ImageObserver, ItemSelectable, MenuContainer, Serializable, Accessible, MenuElement, SwingConstants
- Direct Known Subclasses:
- JideColorSplitButton, JideToggleSplitButton
public class JideSplitButton
- extends JideMenu
- implements ButtonStyle, ComponentStateSupport
JideSplitButton
is a combination of button and menu. There is a line in the middle of the button that
splits the button into two portions. The portion before the line is a button. User can click on it and trigger an
action. The portion after the line is a menu. User can click on it to show a normal menu.
Please be noted that, when you try to use JideSplitButton as a menu item, please make sure that you will re-configure
its font with the following code. Otherwise, it may look different with the other JMenuItems.
splitButton.setFont((Font) JideSwingUtilities.getMenuFont(Toolkit.getDefaultToolkit(), UIManager.getDefaults()));
- See Also:
- Serialized Form
Fields inherited from class javax.swing.AbstractButton |
actionListener, BORDER_PAINTED_CHANGED_PROPERTY, changeEvent, changeListener, CONTENT_AREA_FILLED_CHANGED_PROPERTY, DISABLED_ICON_CHANGED_PROPERTY, DISABLED_SELECTED_ICON_CHANGED_PROPERTY, FOCUS_PAINTED_CHANGED_PROPERTY, HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY, HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY, ICON_CHANGED_PROPERTY, itemListener, MARGIN_CHANGED_PROPERTY, MNEMONIC_CHANGED_PROPERTY, model, MODEL_CHANGED_PROPERTY, PRESSED_ICON_CHANGED_PROPERTY, ROLLOVER_ENABLED_CHANGED_PROPERTY, ROLLOVER_ICON_CHANGED_PROPERTY, ROLLOVER_SELECTED_ICON_CHANGED_PROPERTY, SELECTED_ICON_CHANGED_PROPERTY, TEXT_CHANGED_PROPERTY, VERTICAL_ALIGNMENT_CHANGED_PROPERTY, VERTICAL_TEXT_POSITION_CHANGED_PROPERTY |
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 |
Methods inherited from class com.jidesoft.swing.JideMenu |
getMenuCreator, getOrientation, getOriginCalculator, getPopupMenuCustomizer, getPopupMenuOrigin, getPreferredPopupHorizontalAlignment, getPreferredPopupVerticalAlignment, hideMenu, initMenu, isOpaque, isTopLevelMenu, originalIsOpaque, setMenuCreator, setOrientation, setOriginCalculator, setPopupMenuCustomizer, setPopupMenuVisible, setPreferredPopupHorizontalAlignment, setPreferredPopupVerticalAlignment, shouldHidePopupMenu, supportHorizontalOrientation, supportVerticalOrientation |
Methods inherited from class javax.swing.JMenu |
add, add, add, add, add, addMenuListener, addSeparator, applyComponentOrientation, createActionChangeListener, createActionComponent, createWinListener, doClick, fireMenuCanceled, fireMenuDeselected, fireMenuSelected, getAccessibleContext, getComponent, getDelay, getItem, getItemCount, getMenuComponent, getMenuComponentCount, getMenuComponents, getMenuListeners, getPopupMenu, getSubElements, insert, insert, insert, insertSeparator, isMenuComponent, isPopupMenuVisible, isSelected, isTearOff, menuSelectionChanged, paramString, processKeyEvent, remove, remove, remove, removeAll, removeMenuListener, setAccelerator, setComponentOrientation, setDelay, setMenuLocation, setModel, setSelected |
Methods inherited from class javax.swing.JMenuItem |
addMenuDragMouseListener, addMenuKeyListener, fireMenuDragMouseDragged, fireMenuDragMouseEntered, fireMenuDragMouseExited, fireMenuDragMouseReleased, fireMenuKeyPressed, fireMenuKeyReleased, fireMenuKeyTyped, getAccelerator, getMenuDragMouseListeners, getMenuKeyListeners, init, isArmed, processKeyEvent, processMenuDragMouseEvent, processMenuKeyEvent, processMouseEvent, removeMenuDragMouseListener, removeMenuKeyListener, setArmed, setEnabled, setUI |
Methods inherited from class javax.swing.AbstractButton |
addActionListener, addChangeListener, addImpl, addItemListener, checkHorizontalKey, checkVerticalKey, createActionListener, createActionPropertyChangeListener, createChangeListener, createItemListener, fireActionPerformed, fireItemStateChanged, fireStateChanged, getAction, getActionCommand, getActionListeners, getChangeListeners, getDisabledIcon, getDisabledSelectedIcon, getDisplayedMnemonicIndex, getHideActionText, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getIconTextGap, getItemListeners, getLabel, getMargin, getMnemonic, getModel, getMultiClickThreshhold, getPressedIcon, getRolloverIcon, getRolloverSelectedIcon, getSelectedIcon, getSelectedObjects, getText, getVerticalAlignment, getVerticalTextPosition, imageUpdate, isBorderPainted, isContentAreaFilled, isFocusPainted, isRolloverEnabled, paintBorder, removeActionListener, removeChangeListener, removeItemListener, removeNotify, setAction, setActionCommand, setBorderPainted, setContentAreaFilled, setDisabledIcon, setDisabledSelectedIcon, setDisplayedMnemonicIndex, setFocusPainted, setHideActionText, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setIconTextGap, setLabel, setLayout, setMargin, setMnemonic, setMnemonic, setMultiClickThreshhold, setPressedIcon, setRolloverEnabled, setRolloverIcon, setRolloverSelectedIcon, setSelectedIcon, setVerticalAlignment, setVerticalTextPosition |
Methods inherited from class javax.swing.JComponent |
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, 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, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, 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 inherited from class java.awt.Container |
add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, 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, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, transferFocusBackward, transferFocusDownCycle, validate, validateTree |
Methods inherited from 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, 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, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, resize, resize, setBounds, setBounds, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle |
PROPERTY_ALWAYS_DROPDOWN
public static final String PROPERTY_ALWAYS_DROPDOWN
- See Also:
- Constant Field Values
ACTION_PROPERTY_SPLIT_BUTTON_ENABLED
public static final String ACTION_PROPERTY_SPLIT_BUTTON_ENABLED
- See Also:
- Constant Field Values
JideSplitButton
public JideSplitButton()
JideSplitButton
public JideSplitButton(String s)
JideSplitButton
public JideSplitButton(String s,
Icon icon)
JideSplitButton
public JideSplitButton(Icon icon)
JideSplitButton
public JideSplitButton(Action a)
initComponent
protected void initComponent()
getUI
public ButtonUI getUI()
- Returns the split button 's current UI.
- Overrides:
getUI
in class AbstractButton
- See Also:
setUI(javax.swing.plaf.ButtonUI)
setUI
public void setUI(ButtonUI ui)
- Sets the L&F object that renders this component.
- Overrides:
setUI
in class AbstractButton
- Parameters:
ui
- the JideSplitButtonUI
L&F object- See Also:
UIDefaults.getUI(javax.swing.JComponent)
updateUI
public void updateUI()
- Notification from the
UIFactory
that the L&F has changed. Called to replace the UI with the latest
version from the UIFactory
.
- Overrides:
updateUI
in class JMenu
- See Also:
JComponent.updateUI()
getUIClassID
public String getUIClassID()
- Returns the name of the L&F class that renders this component.
- Overrides:
getUIClassID
in class JMenu
- Returns:
- the string "JideSplitButtonUI"
- See Also:
JComponent.getUIClassID()
,
UIDefaults.getUI(javax.swing.JComponent)
isButtonSelected
public boolean isButtonSelected()
- Returns the state of the button part of the JideSplitButton. True if the toggle button is selected, false if it's
not.
- Returns:
- true if the toggle button is selected, otherwise false
setButtonSelected
public void setButtonSelected(boolean b)
- Sets the state of the button part of the JideSplitButton. Note that this method does not trigger an
actionEvent
. Call doClick
to perform a programmatic action change.
- Parameters:
b
- true if the button is selected, otherwise false
isButtonEnabled
public boolean isButtonEnabled()
- Returns the state of the button part of the JideSplitButton. True if the button is enabled, false if it's not.
- Returns:
- true if the button is enabled, otherwise false
setButtonEnabled
public void setButtonEnabled(boolean b)
- Sets the state of the button part of the JideSplitButton.
- Parameters:
b
- true if the button is enabled, otherwise false
getButtonStyle
public int getButtonStyle()
- Gets the button style.
- Specified by:
getButtonStyle
in interface ButtonStyle
- Returns:
- the button style.
setButtonStyle
public void setButtonStyle(int buttonStyle)
- Sets the button style.
- Specified by:
setButtonStyle
in interface ButtonStyle
- Parameters:
buttonStyle
- the new button style.
isAlwaysDropdown
public boolean isAlwaysDropdown()
- Checks the alwaysDropdown property value.
- Returns:
- true or false. If true, the split button doesn't have default action. It always drops down the menu when
mouse clicks
setAlwaysDropdown
public void setAlwaysDropdown(boolean alwaysDropdown)
- If the property is true, the split button doesn't have default action. It always drops down the menu when mouse
clicks. By default, this value is false.
- Parameters:
alwaysDropdown
- true or false.
setText
public void setText(String text)
- Overrides:
setText
in class AbstractButton
getDefaultForeground
public Color getDefaultForeground()
setDefaultForeground
public void setDefaultForeground(Color defaultForeground)
getBackgroundOfState
public Color getBackgroundOfState(int state)
- Gets the background for different states. The states are defined in ThemePainter as constants. Not all states are
supported by all components. If the state is not supported or background is never set, it will return null.
Please note, each L&F will have its own way to paint the different backgrounds. This method allows you to
customize it for each component to use a different background. So if you want the background to be used, don't
use a ColorUIResource because UIResource is considered as a setting set by the L&F and any L&F can choose to
ignore it.
- Specified by:
getBackgroundOfState
in interface ComponentStateSupport
- Parameters:
state
- the button state. Please refer to ThemePainter
to see the list of
available states.
- Returns:
- the background for different states.
setBackgroundOfState
public void setBackgroundOfState(int state,
Color color)
- Sets the background for different states. The states are defined in ThemePainter as constants. Not all states
are supported by all components. If the state is not supported or background is never set, it will return null.
Please note, each L&F will have its own way to paint the different backgrounds. This method allows you to
customize it for each component to use a different background. So if you want the background to be used, don't
use a ColorUIResource because UIResource is considered as a setting set by the L&F and any L&F can choose to
ignore it.
- Specified by:
setBackgroundOfState
in interface ComponentStateSupport
- Parameters:
state
- the button state. Please refer to ThemePainter
to see the list of
available states.color
- the background color
getForegroundOfState
public Color getForegroundOfState(int state)
- Gets the foreground for different states. The states are defined in ThemePainter as constants. Not all states are
supported by all components. If the state is not supported or foreground is never set, it will return null.
Please note, each L&F will have its own way to paint the different foregrounds. This method allows you to
customize it for each component to use a different foreground. So if you want the foreground to be used, don't
use a ColorUIResource because UIResource is considered as a setting set by the L&F and any L&F can choose to
ignore it.
- Specified by:
getForegroundOfState
in interface ComponentStateSupport
- Parameters:
state
- the button state. Please refer to ThemePainter
to see the list of
available states.
- Returns:
- the foreground for different states.
setForegroundOfState
public void setForegroundOfState(int state,
Color color)
- Sets the foreground for different states. The states are defined in ThemePainter as constants. Not all states
are supported by all components. If the state is not supported or foreground is never set, it will return null.
Please note, each L&F will have its own way to paint the different foregrounds. This method allows you to
customize it for each component to use a different foreground. So if you want the foreground to be used, don't
use a ColorUIResource because UIResource is considered as a setting set by the L&F and any L&F can choose to
ignore it.
- Specified by:
setForegroundOfState
in interface ComponentStateSupport
- Parameters:
state
- the button state. Please refer to ThemePainter
to see the list of
available states.color
- the background color
doClick
public void doClick()
- Clicks on the button part of the
JideSplitButton
.
- Overrides:
doClick
in class AbstractButton
doClickOnMenu
public void doClickOnMenu()
- Clicks on the drop down menu part of the
JideSplitButton
.
configurePropertiesFromAction
protected void configurePropertiesFromAction(Action action)
- Overrides:
configurePropertiesFromAction
in class JMenuItem
setIconFromAction
protected void setIconFromAction(Action action)
- By default, we will use large icon instead of small icon in the JMenuItem. You could override this method to set
your own icon size.
- Parameters:
action
- the action.
actionPropertyChanged
protected void actionPropertyChanged(Action action,
String propertyName)
- Overrides:
actionPropertyChanged
in class JMenuItem
isSplitButtonEnabled
public static boolean isSplitButtonEnabled(Action action)
- Get if the split button is enable from the property stored inside the action.
- Parameters:
action
- the action
- Returns:
- true if the split button is enabled. Otherwise false.