Class JRibbon
- All Implemented Interfaces:
ImageObserver,MenuContainer,Serializable
The ribbon has the following major parts:
- Ribbon tasks added with
addTask(RibbonTask) - Contextual ribbon task groups added with
addContextualTaskGroup(RibbonContextualTaskGroup) - Application menu button set by
setApplicationMenu(RibbonApplicationMenu) - Taskbar panel populated by
addTaskbarComponent(Component) - Help button set by
configureHelp(ResizableIcon, ActionListener)
While multiple ribbon tasks can be added to the ribbon, only one is visible at any given time. This task is called the selected task. Tasks can be switched with the task buttons placed along the top part of the ribbon. Once a task has been added to the ribbon, it cannot be removed.
The contextual ribbon task groups allow showing and hiding ribbon tasks based
on the current selection in the application. For example, Word only shows the
table tasks when a table is selected in the document. By default, tasks
belonging to the groups adde by
addContextualTaskGroup(RibbonContextualTaskGroup) are not visible.
To show the tasks belonging to the specific group, call
setVisible(RibbonContextualTaskGroup, boolean) API. Note that you
can have multiple task groups visible at the same time.
The application menu button is a big round button shown in the top left
corner of the ribbon. If the
setApplicationMenu(RibbonApplicationMenu) is not called, or called
with the null value, the application menu button is not shown,
and ribbon task buttons are shifted to the left.
The taskbar panel allows showing controls that are visible no matter what
ribbon task is selected. To add a taskbar component use the
addTaskbarComponent(Component) API. The taskbar panel lives to the
right of the application menu button. Taskbar components can be removed with
the removeTaskbarComponent(Component) API.
The ribbon can be minimized in one of the following ways:
- Calling
setMinimized(boolean)withtrue. - User double-clicking on a task button.
- User pressing
Ctrl+F1key combination.
A minimized ribbon shows the application menu button, taskbar panel, task buttons and help button, but not the ribbon bands of the selected task. Clicking a task button shows the ribbon bands of that task in a popup without shifting the application content down.
- See Also:
-
Nested Class Summary
Nested 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
FieldsModifier and TypeFieldDescriptionThe application icon.static final StringThe property string used when theapplicationIconchanges.static final StringThe property string used when theapplicationMenuchanges.static final StringThe property string used when theapplicationMenuKeyTipchanges.static final StringThe property string used when theapplicationMenuRichTooltipchanges.static final StringThe property string used when theisMinimizedchanges.static final StringThe property string used when thecurrentlySelectedTaskchanges.static final StringThe UI class ID string.Fields 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 java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH -
Constructor Summary
ConstructorsConstructorDescriptionJRibbon()Constructs an empty defaultJRibbon.JRibbon(ResizableIcon appIcon) Constructs aJRibbonspecifying the application icon. -
Method Summary
Modifier and TypeMethodDescriptionvoidAdds the specified change listener to track changes to this ribbon.voidAdds the specified contextual task group to this ribbon.voidAdds a component to the 'Help Panel.' This is the area where the help button lives.voidaddTask(RibbonTask task) Adds the specified task to this ribbon.voidaddTaskbarComponent(Component comp) Adds the specified taskbar component to this ribbon.voidconfigureHelp(ResizableIcon helpIcon, ActionListener helpActionListener) Configures the help button of this ribbon.protected voidNotifies all registered listeners that the state of this ribbon has changed.Returns the application icon.Returns the application menu of this ribbon.Returns the key tip of the application menu button.Returns the rich tooltip of the application menu button.getContextualTaskGroup(int index) Retrieves contextual task group at specified index.intReturns the number of contextual task groups inthisribbon.Returns the action listener for the help button.Returns the icon for the help button.Returns the rich tooltip of the help button.Deprecated.Returns the currently selected task.getTask(int index) Retrieves the regular task at specified index.Gets an unmodifiable list of all taskbar components ofthisribbon.intReturns the number of regular tasks inthisribbon.getUI()Returns the UI object which implements the L&F for this component.booleanReturns the indication whether this ribbon is minimized.booleanReturns the visibility of ribbon tasks in the specified contextual task group.voidRemoves al the components from the 'Help Panel'.voidRemoves all components added to the taskbar of the ribbon.voidRemoves all tasks from the ribbon.voidRemoves the specified change listener from tracking changes to this ribbon.voidRemoves a component from the 'Help Panel'.voidremoveTask(int pos) Removes the task at the specified position, if it represents a valid task.voidremoveTask(RibbonTask task) Removes the given task from the ribbon.voidRemoves the specified taskbar component from this ribbon.voidsetApplicationIcon(ResizableIcon applicationIcon) Sets the application icon.voidsetApplicationMenu(RibbonApplicationMenu applicationMenu) Sets the application menu for this ribbon.voidsetApplicationMenuKeyTip(String keyTip) Sets the key tip of the application menu button.voidsetApplicationMenuRichTooltip(RichTooltip tooltip) Sets the rich tooltip of the application menu button.voidsetHelpRichTooltip(RichTooltip tooltip) Sets the rich tooltip of the help button.voidsetMinimized(boolean isMinimized) Changes the minimized state of this ribbon.voidsetSelectedTask(RibbonTask task) Selects the specified task.voidsetVisible(boolean flag) voidsetVisible(RibbonContextualTaskGroup group, boolean isVisible) Sets the visibility of ribbon tasks in the specified contextual task group.voidupdateUI()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, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, unregisterKeyboardAction, updateMethods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, 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, setLayout, 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, 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, imageUpdate, 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
-
PROPERTY_APPLICATION_ICON
The property string used when theapplicationIconchanges. The value is "ribbon.icon".- See Also:
-
PROPERTY_APPLICATION_MENU_RICH_TOOLTIP
The property string used when theapplicationMenuRichTooltipchanges. The value is "applicationMenuRichTooltip".- See Also:
-
PROPERTY_APPLICATION_MENU
The property string used when theapplicationMenuchanges. The value is "applicationMenu".- See Also:
-
PROPERTY_APPLICATION_MENU_KEY_TIP
The property string used when theapplicationMenuKeyTipchanges. The value is "applicationMenuKeyTip".- See Also:
-
PROPERTY_SELECTED_TASK
The property string used when thecurrentlySelectedTaskchanges. The value is "selectedTask".- See Also:
-
PROPERTY_MINIMIZED
The property string used when theisMinimizedchanges. The value is "minimized".- See Also:
-
uiClassID
The UI class ID string.- See Also:
-
applicationIcon
The application icon. This is displayed in the application menu button.
-
-
Constructor Details
-
JRibbon
public JRibbon()Constructs an empty defaultJRibbon. Applications are highly encouraged to useJRibbonFrameand access the ribbon withJRibbonFrame.getRibbon()API. -
JRibbon
Constructs aJRibbonspecifying the application icon. The application icon is displayed in the application menu button. Applications are highly encouraged to useJRibbonFrameand access the ribbon withJRibbonFrame.getRibbon()API.- Parameters:
appIcon- the application icon
-
-
Method Details
-
addTaskbarComponent
Adds the specified taskbar component to this ribbon.Taskbar components are small components placed to the right of the application menu. These components usually perform an action common among the entire application.
- Parameters:
comp- the taskbar component to add- See Also:
-
removeTaskbarComponent
Removes the specified taskbar component from this ribbon.- Parameters:
comp- The taskbar component to remove.- See Also:
-
removeAllTaskbarComponents
public void removeAllTaskbarComponents()Removes all components added to the taskbar of the ribbon. -
addTask
Adds the specified task to this ribbon.- Parameters:
task- The ribbon task to add.- See Also:
-
removeTask
public void removeTask(int pos) Removes the task at the specified position, if it represents a valid task. Throws anIndexOutOfBoundsExceptionif not.- Parameters:
pos- The position of the task to remove.
-
removeTask
Removes the given task from the ribbon. If this is the currently visible task, the ribbon will move to the task to its left, unless the removed task is the left-most, in which case it will move to the next task to the right.- Parameters:
task- The ribbon task to be removed from the panel.- Throws:
IllegalArgumentException- iftaskisnull
-
removeAllTasks
public void removeAllTasks()Removes all tasks from the ribbon. -
configureHelp
Configures the help button of this ribbon.- Parameters:
helpIcon- The icon for the help button.helpActionListener- The action listener for the help button.- See Also:
-
getHelpIcon
Returns the icon for the help button. Will returnnullif the help button has not been configured with theconfigureHelp(ResizableIcon, ActionListener)API.- Returns:
- The icon for the help button.
- See Also:
-
getHelpActionListener
Returns the action listener for the help button. Will returnnullif the help button has not been configured with theconfigureHelp(ResizableIcon, ActionListener)API.- Returns:
- The action listener for the help button.
- See Also:
-
setHelpRichTooltip
Sets the rich tooltip of the help button. Fires an stateChanged event.- Parameters:
tooltip- The rich tooltip of the help button.- See Also:
-
getHelpRichTooltip
Returns the rich tooltip of the help button.- Returns:
- The rich tooltip of the help button.
- See Also:
-
addHelpPanelComponent
Adds a component to the 'Help Panel.' This is the area where the help button lives. and is the far right area of the main tab area. Components will be added in left to right fashion, Also, if a help listener is specified then the help button will be the rightmost component on the list. Generally speaking this area should not be abused, as any large amount of components will cause the space available for the task tabs to shrink. This is the area where you would add a "collapse" button like found in Office 2010, or the min/max/close buttons of an integrated desktop area.- Parameters:
comp- the component to be added
-
removeHelpPanelComponent
Removes a component from the 'Help Panel'.- Parameters:
comp- The component to remove. If the component is not currently on the help panel this call will be a no-op.
-
removeAllHelpPanelComponents
public void removeAllHelpPanelComponents()Removes al the components from the 'Help Panel'. -
addContextualTaskGroup
Adds the specified contextual task group to this ribbon.- Parameters:
group- Task group to add.- See Also:
-
getTaskCount
public int getTaskCount()Returns the number of regular tasks inthisribbon. This does not include the contextual ribbon tasks.To find the total number of ribbon tasks (including contextual ribbon tasks) you will have to iterate through the contextual task groups.
- Returns:
- Number of regular tasks in
thisribbon. - See Also:
-
getTask
Retrieves the regular task at specified index.- Parameters:
index- task index- Returns:
- the task that matches the specified index
- See Also:
-
getContextualTaskGroupCount
public int getContextualTaskGroupCount()Returns the number of contextual task groups inthisribbon.- Returns:
- number of contextual task groups in
thisribbon - See Also:
-
getContextualTaskGroup
Retrieves contextual task group at specified index.- Parameters:
index- group index- Returns:
- group that matches the specified index
- See Also:
-
setSelectedTask
Selects the specified task. The task can be either regular (added withaddTask(RibbonTask)) or a task in a visible contextual task group (added withaddContextualTaskGroup(RibbonContextualTaskGroup). Fires aselectedTaskproperty change event.- Parameters:
task- task to select- Throws:
IllegalArgumentException- iftaskis not in the ribbon, isnull, or not visible.- See Also:
-
getSelectedTask
Returns the currently selected task.- Returns:
- The currently selected task.
- See Also:
-
updateUI
public void updateUI()- Overrides:
updateUIin classJComponent
-
getUI
Returns the UI object which implements the L&F for this component.- Overrides:
getUIin classJComponent- Returns:
- a
RibbonUIobject - See Also:
-
getUIClassID
- Overrides:
getUIClassIDin classJComponent
-
getTaskbarComponents
Gets an unmodifiable list of all taskbar components ofthisribbon.- Returns:
- All taskbar components of
thisribbon. - See Also:
-
addChangeListener
Adds the specified change listener to track changes to this ribbon.- Parameters:
l- Change listener to add.- See Also:
-
removeChangeListener
Removes the specified change listener from tracking changes to this ribbon.- Parameters:
l- Change listener to remove.- See Also:
-
fireStateChanged
protected void fireStateChanged()Notifies all registered listeners that the state of this ribbon has changed. -
setVisible
Sets the visibility of ribbon tasks in the specified contextual task group. Visibility of all ribbon tasks in the specified group is affected. Note that the ribbon can show ribbon tasks of multiple groups at the same time.- Parameters:
group- Contextual task group.isVisible- Iftrue, all ribbon tasks in the specified group will be visible. Iffalse, all ribbon tasks in the specified group will be hidden.- See Also:
-
isVisible
Returns the visibility of ribbon tasks in the specified contextual task group.- Parameters:
group- Contextual task group.- Returns:
trueif the ribbon tasks in the specified group are visible,falseotherwise.
-
setApplicationMenu
Sets the application menu for this ribbon. Ifnullis passed, the application menu button is hidden. Fires anapplicationMenuproperty change event.- Parameters:
applicationMenu- The new application menu. Can benull.- See Also:
-
getApplicationMenu
Returns the application menu of this ribbon.- Returns:
- The application menu of this ribbon.
- See Also:
-
setApplicationMenuRichTooltip
Sets the rich tooltip of the application menu button. Fires anapplicationMenuRichTooltipproperty change event.- Parameters:
tooltip- The rich tooltip of the application menu button.- See Also:
-
getApplicationMenuRichTooltip
Returns the rich tooltip of the application menu button.- Returns:
- The rich tooltip of the application menu button.
- See Also:
-
setApplicationMenuKeyTip
Sets the key tip of the application menu button. Fires anapplicationMenuKeyTipproperty change event.- Parameters:
keyTip- The new key tip for the application menu button.- See Also:
-
getApplicationMenuKeyTip
Returns the key tip of the application menu button.- Returns:
- The key tip of the application menu button.
- See Also:
-
isMinimized
public boolean isMinimized()Returns the indication whether this ribbon is minimized.- Returns:
trueif this ribbon is minimized,falseotherwise.- See Also:
-
setMinimized
public void setMinimized(boolean isMinimized) Changes the minimized state of this ribbon. Fires aminimizedproperty change event.- Parameters:
isMinimized- iftrue, this ribbon becomes minimized, otherwise it is unminimized.
-
getRibbonFrame
Deprecated.Dropped support in order to decouple theJRibbonfrom theJRibbonFrameReturns the ribbon frame that hosts this ribbon. The result can benull.- Returns:
- The ribbon frame that hosts this ribbon.
-
setVisible
public void setVisible(boolean flag) - Overrides:
setVisiblein classJComponent
-
getApplicationIcon
Returns the application icon. The application icon is displayed on the application menu button.This is a convenience method and is equivalent to
getUI().getApplicationIcon().- Returns:
- the application icon
- See Also:
-
setApplicationIcon
Sets the application icon. This is displayed on the application menu button.There is no check performed to see if
applicationIconisnull.A
PropertyChangeEventis fired for thePROPERTY_APPLICATION_ICONproperty.- Parameters:
applicationIcon- the application icon to set- See Also:
-
JRibbonfrom theJRibbonFrame