public class BasicMenuItemUI extends MenuItemUI
| Modifier and Type | Class and Description |
|---|---|
protected class |
BasicMenuItemUI
|
| Modifier and Type | Field and Description |
|---|---|
protected String |
acceleratorDelimiter
Accelerator delimiter string, such as
'+' in
'Ctrl+C'.
|
protected Font |
acceleratorFont
|
protected Color |
acceleratorForeground
|
protected Color |
acceleratorSelectionForeground
|
protected Icon |
arrowIcon
|
protected Icon |
checkIcon
|
protected int |
defaultTextIconGap
|
protected Color |
disabledForeground
|
protected MenuDragMouseListener |
menuDragMouseListener
|
protected JMenuItem |
menuItem
|
protected MenuKeyListener |
menuKeyListener
|
protected MouseInputListener |
mouseInputListener
|
protected boolean |
oldBorderPainted
|
protected PropertyChangeListener |
propertyChangeListener
PropertyChangeListener returned from
createPropertyChangeListener.
|
protected Color |
selectionBackground
|
protected Color |
selectionForeground
|
| Constructor and Description |
|---|
BasicMenuItemUI()
|
| Modifier and Type | Method and Description |
|---|---|
protected MenuDragMouseListener |
createMenuDragMouseListener(JComponent
|
protected MenuKeyListener |
createMenuKeyListener(JComponent
|
protected MouseInputListener |
createMouseInputListener(JComponent
|
protected PropertyChangeListener |
createPropertyChangeListener(JComponent
Creates a
PropertyChangeListener which will be added to the menu item.
|
static ComponentUI |
createUI(JComponent
|
protected void |
doClick(MenuSelectionManager
Call this method when a menu item is to be activated.
|
Dimension |
getMaximumSize(JComponent
Returns the specified component's maximum size appropriate for the look and feel.
|
Dimension |
getMinimumSize(JComponent
Returns the specified component's minimum size appropriate for the look and feel.
|
MenuElement |
getPath()
|
protected Dimension |
getPreferredMenuItemSize(JComponent
|
Dimension |
getPreferredSize(JComponent
Returns the specified component's preferred size appropriate for the look and feel.
|
protected String |
getPropertyPrefix()
|
protected void |
installComponents(JMenuItem
|
protected void |
installDefaults()
|
protected void |
installKeyboardActions()
|
protected void |
installListeners()
|
void |
installUI(JComponent
Configures the specified component appropriately for the look and feel.
|
void |
paint(Graphics
Paints the specified component appropriately for the look and feel.
|
protected void |
paintBackground(Graphics
Draws the background of the menu item.
|
protected void |
paintMenuItem(Graphics
|
protected void |
paintText(Graphics
Renders the text of the current menu item.
|
protected void |
uninstallComponents(JMenuItem
|
protected void |
uninstallDefaults()
|
protected void |
uninstallKeyboardActions()
|
protected void |
uninstallListeners()
|
void |
uninstallUI(JComponent
Reverses configuration which was done on the specified component during
installUI.
|
void |
update(Graphics
We draw the background in paintMenuItem() so override update (which fills the background of opaque components by default) to just call paint().
|
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehaviorprotected JMenuItemmenuItem
protected ColorselectionBackground
protected ColorselectionForeground
protected ColordisabledForeground
protected ColoracceleratorForeground
protected ColoracceleratorSelectionForeground
protected StringacceleratorDelimiter
'+' in
'Ctrl+C'.
protected int defaultTextIconGap
protected FontacceleratorFont
protected MouseInputListenermouseInputListener
protected MenuDragMouseListenermenuDragMouseListener
protected MenuKeyListenermenuKeyListener
protected PropertyChangeListenerpropertyChangeListener
PropertyChangeListener returned from
createPropertyChangeListener. You should not need to access this field, rather if you want to customize the
PropertyChangeListener override
createPropertyChangeListener.
createPropertyChangeListener(javax.swing.JComponent)
protected IconarrowIcon
protected IconcheckIcon
protected boolean oldBorderPainted
public static ComponentUIcreateUI(JComponent c)
public void installUI(JComponentc)
ComponentUI
ComponentUI instance is being installed as the UI delegate on the specified component. This method should completely configure the component for the look and feel, including the following:
LayoutManager on the component if necessary. PropertyChangeListener on the component in order to detect and respond to component property changes appropriately. installUI in class
ComponentUI
c - the component where this UI delegate is being installed
ComponentUI.uninstallUI(javax.swing.JComponent) ,
JComponent.setUI(javax.swing.plaf.ComponentUI) ,
JComponent.updateUI()
protected void installDefaults()
protected void installComponents(JMenuItemmenuItem)
protected StringgetPropertyPrefix()
protected void installListeners()
protected void installKeyboardActions()
public void uninstallUI(JComponentc)
ComponentUI
installUI. This method is invoked when this
UIComponent instance is being removed as the UI delegate for the specified component. This method should undo the configuration performed in
installUI, being careful to leave the
JComponent instance in a clean state (no extraneous listeners, look-and-feel-specific property objects, etc.). This should include the following:
uninstallUI in class
ComponentUI
c - the component from which this UI delegate is being removed; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components
ComponentUI.installUI(javax.swing.JComponent) ,
JComponent.updateUI()
protected void uninstallDefaults()
protected void uninstallComponents(JMenuItemmenuItem)
protected void uninstallListeners()
protected void uninstallKeyboardActions()
protected MouseInputListenercreateMouseInputListener(JComponent c)
protected MenuDragMouseListenercreateMenuDragMouseListener(JComponent c)
protected MenuKeyListenercreateMenuKeyListener(JComponent c)
protected PropertyChangeListenercreatePropertyChangeListener(JComponent c)
PropertyChangeListener which will be added to the menu item. If this method returns null then it will not be added to the menu item.
PropertyChangeListener or null
public DimensiongetMinimumSize(JComponent c)
ComponentUI
null is returned, the minimum size will be calculated by the component's layout manager instead (this is the preferred approach for any component with a specific layout manager installed). The default implementation of this method invokes
getPreferredSize and returns that value.
getMinimumSize in class
ComponentUI
c - the component whose minimum size is being queried; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components
Dimension object or
null
JComponent.getMinimumSize() ,
LayoutManager.minimumLayoutSize(java.awt.Container) ,
ComponentUI.getPreferredSize(javax.swing.JComponent)
public DimensiongetPreferredSize(JComponent c)
ComponentUI
null is returned, the preferred size will be calculated by the component's layout manager instead (this is the preferred approach for any component with a specific layout manager installed). The default implementation of this method returns
null.
getPreferredSize in class
ComponentUI
c - the component whose preferred size is being queried; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components
JComponent.getPreferredSize() ,
LayoutManager.preferredLayoutSize(java.awt.Container)
public DimensiongetMaximumSize(JComponent c)
ComponentUI
null is returned, the maximum size will be calculated by the component's layout manager instead (this is the preferred approach for any component with a specific layout manager installed). The default implementation of this method invokes
getPreferredSize and returns that value.
getMaximumSize in class
ComponentUI
c - the component whose maximum size is being queried; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components
Dimension object or
null
JComponent.getMaximumSize() ,
LayoutManager2.maximumLayoutSize(java.awt.Container)
protected DimensiongetPreferredMenuItemSize(JComponent c, Icon checkIcon, Icon arrowIcon, int defaultTextIconGap)
public void update(Graphicsg, JComponent c)
update in class
ComponentUI
g - the
Graphics context in which to paint
c - the component being painted; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components
ComponentUI.paint(java.awt.Graphics, javax.swing.JComponent) ,
JComponent.paintComponent(java.awt.Graphics)
public void paint(Graphicsg, JComponent c)
ComponentUI
ComponentUI.update method when the specified component is being painted. Subclasses should override this method and use the specified
Graphics object to render the content of the component.
paint in class
ComponentUI
g - the
Graphics context in which to paint
c - the component being painted; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components
ComponentUI.update(java.awt.Graphics, javax.swing.JComponent)
protected void paintMenuItem(Graphicsg, JComponent c, Icon checkIcon, Icon arrowIcon, Color background, Color foreground, int defaultTextIconGap)
protected void paintBackground(Graphicsg, JMenuItem menuItem, Color bgColor)
g - the paint graphics
menuItem - menu item to be painted
bgColor - selection background color
protected void paintText(Graphicsg, JMenuItem menuItem, Rectangle textRect, String text)
g - graphics context
menuItem - menu item to render
textRect - bounding rectangle for rendering the text
text - string to render
public MenuElement[] getPath()
protected void doClick(MenuSelectionManagermsm)
msm - A MenuSelectionManager. The visual feedback and internal bookkeeping tasks are delegated to this MenuSelectionManager. If
null is passed as this argument, the
MenuSelectionManager.defaultManager is used.
MenuSelectionManager,
AbstractButton.doClick(int)