public class BasicMenuItemUI extends MenuItemUI
Modifier and Type | Class and Description |
---|---|
protected class |
BasicMenuItemUI.MouseInputHandler |
Modifier and Type | Field and Description |
---|---|
protected String |
acceleratorDelimiter
加速器分隔字符串,如
'+' 在
'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 返回
createPropertyChangeListener 。
|
protected Color |
selectionBackground |
protected Color |
selectionForeground |
Constructor and Description |
---|
BasicMenuItemUI() |
Modifier and Type | Method and Description |
---|---|
protected MenuDragMouseListener |
createMenuDragMouseListener(JComponent c) |
protected MenuKeyListener |
createMenuKeyListener(JComponent c) |
protected MouseInputListener |
createMouseInputListener(JComponent c) |
protected PropertyChangeListener |
createPropertyChangeListener(JComponent c)
创建一个
PropertyChangeListener 将被添加到菜单项。
|
static ComponentUI |
createUI(JComponent c) |
protected void |
doClick(MenuSelectionManager msm)
当菜单项被激活时调用此方法。
|
Dimension |
getMaximumSize(JComponent c)
返回指定组件的最大尺寸,适合外观和感觉。
|
Dimension |
getMinimumSize(JComponent c)
返回指定组件的最小尺寸,适合外观和感觉。
|
MenuElement[] |
getPath() |
protected Dimension |
getPreferredMenuItemSize(JComponent c, Icon checkIcon, Icon arrowIcon, int defaultTextIconGap) |
Dimension |
getPreferredSize(JComponent c)
返回指定组件的偏好大小,适合外观和感觉。
|
protected String |
getPropertyPrefix() |
protected void |
installComponents(JMenuItem menuItem) |
protected void |
installDefaults() |
protected void |
installKeyboardActions() |
protected void |
installListeners() |
void |
installUI(JComponent c)
适当地配置指定的组件的外观和感觉。
|
void |
paint(Graphics g, JComponent c)
适当地涂抹指定的组件的外观和感觉。
|
protected void |
paintBackground(Graphics g, JMenuItem menuItem, Color bgColor)
绘制菜单项的背景。
|
protected void |
paintMenuItem(Graphics g, JComponent c, Icon checkIcon, Icon arrowIcon, Color background, Color foreground, int defaultTextIconGap) |
protected void |
paintText(Graphics g, JMenuItem menuItem, Rectangle textRect, String text)
呈现当前菜单项的文本。
|
protected void |
uninstallComponents(JMenuItem menuItem) |
protected void |
uninstallDefaults() |
protected void |
uninstallKeyboardActions() |
protected void |
uninstallListeners() |
void |
uninstallUI(JComponent c)
在installUI中反转在
installUI 上完成的
installUI 。
|
void |
update(Graphics g, JComponent c)
我们在paintMenuItem()中绘制背景,因此覆盖更新(默认填写不透明组件的背景)来调用paint()。
|
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior
protected JMenuItem menuItem
protected Color selectionBackground
protected Color selectionForeground
protected Color disabledForeground
protected Color acceleratorForeground
protected Color acceleratorSelectionForeground
protected String acceleratorDelimiter
'+'
在
'Ctrl+C'
。
protected int defaultTextIconGap
protected Font acceleratorFont
protected MouseInputListener mouseInputListener
protected MenuDragMouseListener menuDragMouseListener
protected MenuKeyListener menuKeyListener
protected PropertyChangeListener propertyChangeListener
PropertyChangeListener
从createPropertyChangeListener
返回。
您不需要访问此字段,而是要自定义PropertyChangeListener
覆盖createPropertyChangeListener
。
createPropertyChangeListener(javax.swing.JComponent)
protected Icon arrowIcon
protected Icon checkIcon
protected boolean oldBorderPainted
public static ComponentUI createUI(JComponent c)
public void installUI(JComponent c)
ComponentUI
ComponentUI
实例作为指定组件上的UI委托时,将调用此方法。
该方法应该完全配置组件的外观,包括以下内容:
LayoutManager
上安装LayoutManager。 PropertyChangeListener
上创建/安装PropertyChangeListener,以便适当地检测和响应组件属性的更改。 installUI
在
ComponentUI
c
- 安装此UI代理的组件
ComponentUI.uninstallUI(javax.swing.JComponent)
,
JComponent.setUI(javax.swing.plaf.ComponentUI)
,
JComponent.updateUI()
protected void installDefaults()
protected void installComponents(JMenuItem menuItem)
protected String getPropertyPrefix()
protected void installListeners()
protected void installKeyboardActions()
public void uninstallUI(JComponent c)
ComponentUI
复制
installUI
上完成的installUI
。
当将此UIComponent
实例作为指定组件的UI委托删除时,将调用此方法。
该方法应该撤消在installUI中执行的installUI
,小心使JComponent
实例处于干净状态(无外部监听器,外观特定属性对象等)。
这应该包括以下内容:
uninstallUI
在
ComponentUI
c
- 从中删除此UI代理的组件;
这个参数经常被忽略,但如果UI对象是无状态的并且被多个组件共享,则可能会被使用
ComponentUI.installUI(javax.swing.JComponent)
,
JComponent.updateUI()
protected void uninstallDefaults()
protected void uninstallComponents(JMenuItem menuItem)
protected void uninstallListeners()
protected void uninstallKeyboardActions()
protected MouseInputListener createMouseInputListener(JComponent c)
protected MenuDragMouseListener createMenuDragMouseListener(JComponent c)
protected MenuKeyListener createMenuKeyListener(JComponent c)
protected PropertyChangeListener createPropertyChangeListener(JComponent c)
PropertyChangeListener
将被添加到菜单项。
如果此方法返回null,则不会将其添加到菜单项。
PropertyChangeListener
的实例或null
public Dimension getMinimumSize(JComponent c)
ComponentUI
null
,则最小尺寸将由组件布局管理器计算(这是安装了特定布局管理器的任何组件的首选方法)。
此方法的默认实现调用getPreferredSize
并返回该值。
getMinimumSize
在
ComponentUI
类
c
- 查询最小大小的组件;
这个参数经常被忽略,但如果UI对象是无状态的并且被多个组件共享,则可能会被使用
Dimension
对象或
null
JComponent.getMinimumSize()
,
LayoutManager.minimumLayoutSize(java.awt.Container)
,
ComponentUI.getPreferredSize(javax.swing.JComponent)
public Dimension getPreferredSize(JComponent c)
ComponentUI
null
,则首选大小将由组件的布局管理器计算(这是安装了特定布局管理器的任何组件的首选方法)。
此方法的默认实现返回null
。
getPreferredSize
在
ComponentUI
c
- 要查询其首选大小的组件;
这个参数经常被忽略,但如果UI对象是无状态的并且被多个组件共享,则可能会被使用
JComponent.getPreferredSize()
,
LayoutManager.preferredLayoutSize(java.awt.Container)
public Dimension getMaximumSize(JComponent c)
ComponentUI
null
,则最大大小将由组件的布局管理器计算(这是安装了特定布局管理器的任何组件的首选方法)。
此方法的默认实现将调用getPreferredSize
并返回该值。
getMaximumSize
在
ComponentUI
c
- 查询最大大小的组件;
这个参数经常被忽略,但如果UI对象是无状态的并且被多个组件共享,则可能会被使用
Dimension
对象或
null
JComponent.getMaximumSize()
,
LayoutManager2.maximumLayoutSize(java.awt.Container)
protected Dimension getPreferredMenuItemSize(JComponent c, Icon checkIcon, Icon arrowIcon, int defaultTextIconGap)
public void update(Graphics g, JComponent c)
update
在
ComponentUI
g
- 要绘画的
Graphics
上下文
c
- 被涂的部件
这个参数经常被忽略,但如果UI对象是无状态的并且被多个组件共享,则可能会被使用
ComponentUI.paint(java.awt.Graphics, javax.swing.JComponent)
,
JComponent.paintComponent(java.awt.Graphics)
public void paint(Graphics g, JComponent c)
ComponentUI
ComponentUI.update
方法调用此方法。
子类应该覆盖此方法,并使用指定的Graphics
对象来呈现Graphics
的内容。
paint
在
ComponentUI
g
- 要绘画的
Graphics
上下文
c
- 正在涂漆的组件;
这个参数经常被忽略,但如果UI对象是无状态的并且被多个组件共享,则可能会被使用
ComponentUI.update(java.awt.Graphics, javax.swing.JComponent)
protected void paintMenuItem(Graphics g, JComponent c, Icon checkIcon, Icon arrowIcon, Color background, Color foreground, int defaultTextIconGap)
protected void paintBackground(Graphics g, JMenuItem menuItem, Color bgColor)
g
- 油漆图形
menuItem
- 要画的菜单项
bgColor
- 选择背景颜色
protected void paintText(Graphics g, JMenuItem menuItem, Rectangle textRect, String text)
g
- 图形上下文
menuItem
- 要呈现的菜单项
textRect
- 用于呈现文本的边界矩形
text
- 要呈现的字符串
public MenuElement[] getPath()
protected void doClick(MenuSelectionManager msm)
msm
- MenuSelectionManager。
视觉反馈和内部簿记任务被委派给该MenuSelectionManager。
如果null
作为参数传递,则使用MenuSelectionManager.defaultManager
。
MenuSelectionManager
, AbstractButton.doClick(int)