Package 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:
JideToggleSplitButton
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:
-
Nested Class Summary
Nested classes/interfaces inherited from class com.jidesoft.swing.JideMenu
JideMenu.MenuCreator, JideMenu.PopupMenuCustomizer, JideMenu.PopupMenuOriginCalculatorNested classes/interfaces inherited from class javax.swing.JMenu
JMenu.AccessibleJMenu, JMenu.WinListenerNested classes/interfaces inherited from class javax.swing.JMenuItem
JMenuItem.AccessibleJMenuItemNested classes/interfaces inherited from class javax.swing.AbstractButton
AbstractButton.AccessibleAbstractButton, AbstractButton.ButtonChangeListenerNested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponentNested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
FieldsFields inherited from class javax.swing.JMenu
popupListenerFields 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_PROPERTYFields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWFields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface com.jidesoft.swing.Alignable
PROPERTY_ORIENTATIONFields inherited from interface com.jidesoft.swing.ButtonStyle
BUTTON_STYLE_PROPERTY, CLIENT_PROPERTY_SEGMENT_POSITION, FLAT_STYLE, HYPERLINK_STYLE, SEGMENT_POSITION_FIRST, SEGMENT_POSITION_LAST, SEGMENT_POSITION_MIDDLE, SEGMENT_POSITION_ONLY, TOOLBAR_STYLE, TOOLBOX_STYLEFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTHFields 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 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidactionPropertyChanged(Action action, String propertyName) protected voidconfigurePropertiesFromAction(Action action) voiddoClick()Clicks on the button part of theJideSplitButton.voidClicks on the drop down menu part of theJideSplitButton.getBackgroundOfState(int state) Gets the background for different states.intGets the button style.getForegroundOfState(int state) Gets the foreground for different states.getUI()Returns the split button 's current UI.Returns the name of the Linvalid input: '&F' class that renders this component.protected voidbooleanChecks the alwaysDropdown property value.booleanReturns the state of the button part of the JideSplitButton.booleanReturns the state of the button part of the JideSplitButton.static booleanisSplitButtonEnabled(Action action) Get if the split button is enable from the property stored inside the action.voidsetAlwaysDropdown(boolean alwaysDropdown) If the property is true, the split button doesn't have default action.voidsetBackgroundOfState(int state, Color color) Sets the background for different states.voidsetButtonEnabled(boolean b) Sets the state of the button part of the JideSplitButton.voidsetButtonSelected(boolean b) Sets the state of the button part of the JideSplitButton.voidsetButtonStyle(int buttonStyle) Sets the button style.voidsetDefaultForeground(Color defaultForeground) voidsetForegroundOfState(int state, Color color) Sets the foreground for different states.protected voidsetIconFromAction(Action action) By default, we will use large icon instead of small icon in the JMenuItem.voidvoidSets the Linvalid input: '&F' object that renders this component.voidupdateUI()Notification from theUIFactorythat the Linvalid input: '&F' has changed.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, supportVerticalOrientationMethods 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, setSelectedMethods 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, setUIMethods 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, setVerticalTextPositionMethods 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, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, 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, updateMethods 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, transferFocusDownCycle, validate, validateTreeMethods 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, 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, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycleMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface javax.swing.MenuElement
processKeyEvent, processMouseEvent
-
Field Details
-
PROPERTY_ALWAYS_DROPDOWN
- See Also:
-
ACTION_PROPERTY_SPLIT_BUTTON_ENABLED
- See Also:
-
-
Constructor Details
-
JideSplitButton
public JideSplitButton() -
JideSplitButton
-
JideSplitButton
-
JideSplitButton
-
JideSplitButton
-
-
Method Details
-
initComponent
protected void initComponent() -
getUI
Returns the split button 's current UI.- Overrides:
getUIin classAbstractButton- See Also:
-
setUI
Sets the Linvalid input: '&F' object that renders this component.- Overrides:
setUIin classAbstractButton- Parameters:
ui- theJideSplitButtonUILinvalid input: '&F' object- See Also:
-
updateUI
public void updateUI()Notification from theUIFactorythat the Linvalid input: '&F' has changed. Called to replace the UI with the latest version from theUIFactory. -
getUIClassID
Returns the name of the Linvalid input: '&F' class that renders this component.- Overrides:
getUIClassIDin classJMenu- Returns:
- the string "JideSplitButtonUI"
- See Also:
-
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 anactionEvent. CalldoClickto 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:
getButtonStylein interfaceButtonStyle- Returns:
- the button style.
-
setButtonStyle
public void setButtonStyle(int buttonStyle) Sets the button style.- Specified by:
setButtonStylein interfaceButtonStyle- 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
- Overrides:
setTextin classAbstractButton
-
getDefaultForeground
-
setDefaultForeground
-
getBackgroundOfState
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 Linvalid input: '&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 Linvalid input: '&F' and any Linvalid input: '&F' can choose to ignore it.- Specified by:
getBackgroundOfStatein interfaceComponentStateSupport- Parameters:
state- the button state. Please refer toThemePainterto see the list of available states.- Returns:
- the background for different states.
-
setBackgroundOfState
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 Linvalid input: '&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 Linvalid input: '&F' and any Linvalid input: '&F' can choose to ignore it.- Specified by:
setBackgroundOfStatein interfaceComponentStateSupport- Parameters:
state- the button state. Please refer toThemePainterto see the list of available states.color- the background color
-
getForegroundOfState
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 Linvalid input: '&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 Linvalid input: '&F' and any Linvalid input: '&F' can choose to ignore it.- Specified by:
getForegroundOfStatein interfaceComponentStateSupport- Parameters:
state- the button state. Please refer toThemePainterto see the list of available states.- Returns:
- the foreground for different states.
-
setForegroundOfState
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 Linvalid input: '&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 Linvalid input: '&F' and any Linvalid input: '&F' can choose to ignore it.- Specified by:
setForegroundOfStatein interfaceComponentStateSupport- Parameters:
state- the button state. Please refer toThemePainterto see the list of available states.color- the background color
-
doClick
public void doClick()Clicks on the button part of theJideSplitButton.- Overrides:
doClickin classAbstractButton
-
doClickOnMenu
public void doClickOnMenu()Clicks on the drop down menu part of theJideSplitButton. -
configurePropertiesFromAction
- Overrides:
configurePropertiesFromActionin classJMenuItem
-
setIconFromAction
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
- Overrides:
actionPropertyChangedin classJMenuItem
-
isSplitButtonEnabled
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.
-