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+F1
key 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.AccessibleJComponent
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
Nested 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 String
The property string used when theapplicationIcon
changes.static final String
The property string used when theapplicationMenu
changes.static final String
The property string used when theapplicationMenuKeyTip
changes.static final String
The property string used when theapplicationMenuRichTooltip
changes.static final String
The property string used when theisMinimized
changes.static final String
The property string used when thecurrentlySelectedTask
changes.static final String
The 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_WINDOW
Fields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Fields 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 aJRibbon
specifying the application icon. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds the specified change listener to track changes to this ribbon.void
Adds the specified contextual task group to this ribbon.void
Adds a component to the 'Help Panel.' This is the area where the help button lives.void
addTask
(RibbonTask task) Adds the specified task to this ribbon.void
addTaskbarComponent
(Component comp) Adds the specified taskbar component to this ribbon.void
configureHelp
(ResizableIcon helpIcon, ActionListener helpActionListener) Configures the help button of this ribbon.protected void
Notifies 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.int
Returns the number of contextual task groups inthis
ribbon.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 ofthis
ribbon.int
Returns the number of regular tasks inthis
ribbon.getUI()
Returns the UI object which implements the L&F for this component.boolean
Returns the indication whether this ribbon is minimized.boolean
Returns the visibility of ribbon tasks in the specified contextual task group.void
Removes al the components from the 'Help Panel'.void
Removes all components added to the taskbar of the ribbon.void
Removes all tasks from the ribbon.void
Removes the specified change listener from tracking changes to this ribbon.void
Removes a component from the 'Help Panel'.void
removeTask
(int pos) Removes the task at the specified position, if it represents a valid task.void
removeTask
(RibbonTask task) Removes the given task from the ribbon.void
Removes the specified taskbar component from this ribbon.void
setApplicationIcon
(ResizableIcon applicationIcon) Sets the application icon.void
setApplicationMenu
(RibbonApplicationMenu applicationMenu) Sets the application menu for this ribbon.void
setApplicationMenuKeyTip
(String keyTip) Sets the key tip of the application menu button.void
setApplicationMenuRichTooltip
(RichTooltip tooltip) Sets the rich tooltip of the application menu button.void
setHelpRichTooltip
(RichTooltip tooltip) Sets the rich tooltip of the help button.void
setMinimized
(boolean isMinimized) Changes the minimized state of this ribbon.void
setSelectedTask
(RibbonTask task) Selects the specified task.void
setVisible
(boolean flag) void
setVisible
(RibbonContextualTaskGroup group, boolean isVisible) Sets the visibility of ribbon tasks in the specified contextual task group.void
updateUI()
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, update
Methods 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, 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, 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 theapplicationIcon
changes. The value is "ribbon.icon".- See Also:
-
PROPERTY_APPLICATION_MENU_RICH_TOOLTIP
The property string used when theapplicationMenuRichTooltip
changes. The value is "applicationMenuRichTooltip".- See Also:
-
PROPERTY_APPLICATION_MENU
The property string used when theapplicationMenu
changes. The value is "applicationMenu".- See Also:
-
PROPERTY_APPLICATION_MENU_KEY_TIP
The property string used when theapplicationMenuKeyTip
changes. The value is "applicationMenuKeyTip".- See Also:
-
PROPERTY_SELECTED_TASK
The property string used when thecurrentlySelectedTask
changes. The value is "selectedTask".- See Also:
-
PROPERTY_MINIMIZED
The property string used when theisMinimized
changes. 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 useJRibbonFrame
and access the ribbon withJRibbonFrame.getRibbon()
API. -
JRibbon
Constructs aJRibbon
specifying the application icon. The application icon is displayed in the application menu button. Applications are highly encouraged to useJRibbonFrame
and 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 anIndexOutOfBoundsException
if 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
- iftask
isnull
-
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 returnnull
if 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 returnnull
if 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 inthis
ribbon. 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
this
ribbon. - 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 inthis
ribbon.- Returns:
- number of contextual task groups in
this
ribbon - 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 aselectedTask
property change event.- Parameters:
task
- task to select- Throws:
IllegalArgumentException
- iftask
is 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:
updateUI
in classJComponent
-
getUI
Returns the UI object which implements the L&F for this component.- Overrides:
getUI
in classJComponent
- Returns:
- a
RibbonUI
object - See Also:
-
getUIClassID
- Overrides:
getUIClassID
in classJComponent
-
getTaskbarComponents
Gets an unmodifiable list of all taskbar components ofthis
ribbon.- Returns:
- All taskbar components of
this
ribbon. - 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:
true
if the ribbon tasks in the specified group are visible,false
otherwise.
-
setApplicationMenu
Sets the application menu for this ribbon. Ifnull
is passed, the application menu button is hidden. Fires anapplicationMenu
property 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 anapplicationMenuRichTooltip
property 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 anapplicationMenuKeyTip
property 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:
true
if this ribbon is minimized,false
otherwise.- See Also:
-
setMinimized
public void setMinimized(boolean isMinimized) Changes the minimized state of this ribbon. Fires aminimized
property change event.- Parameters:
isMinimized
- iftrue
, this ribbon becomes minimized, otherwise it is unminimized.
-
getRibbonFrame
Deprecated.Dropped support in order to decouple theJRibbon
from theJRibbonFrame
Returns 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:
setVisible
in 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
applicationIcon
isnull
.A
PropertyChangeEvent
is fired for thePROPERTY_APPLICATION_ICON
property.- Parameters:
applicationIcon
- the application icon to set- See Also:
-
JRibbon
from theJRibbonFrame