JavaTM Platform
Standard Ed. 6

javax.swing
类 JMenu

java.lang.Object
  继承者 java.awt.Component
      继承者 java.awt.Container
          继承者 javax.swing.JComponent
              继承者 javax.swing.AbstractButton
                  继承者 javax.swing.JMenuItem
                      继承者 javax.swing.JMenu
所有已实现的接口:
ImageObserver, ItemSelectable, MenuContainer, Serializable, Accessible, MenuElement, SwingConstants

public class JMenu
     
extends JMenuItem
implements Accessible, MenuElement

菜单的该实现是一个包含 JMenuItem 的弹出窗口,用户选择 JMenuBar 上的项时会显示该 JMenuItem。除 JMenuItem 之外,JMenu 还可以包含 JSeparator

菜单本质上是带有关联 JPopupMenu 的按钮。当按下“按钮”时,就会显示 JPopupMenu。如果“按钮”位于 JMenuBar 上,则该菜单为顶层窗口。如果“按钮”是另一个菜单项,则 JPopupMenu 就是“右拉”菜单。

通过 Action 可以配置菜单,并进行一定程度的控制。对菜单使用 Action 有许多直接配置菜单所不及的优点。有关更多信息,请参阅支持 Action 的 Swing 组件,可以在 The Java Tutorial 中的 How to Use Actions 一节找到更多信息。

有关使用菜单的示例和信息,请参阅 The Java Tutorial 中的 How to Use Menus 一节。

警告:Swing 不是线程安全的。有关更多信息,请参阅 Swing's Threading Policy

警告:此类的序列化对象与以后的 Swing 版本不兼容。当前序列化支持适用于短期存储,或适用于在运行相同 Swing 版本的应用程序之间进行 RMI(Remote Method Invocation,远程方法调用)。从 1.4 版本开始,已在 java.beans 包中添加了支持所有 JavaBeansTM 长期存储的功能。请参阅 XMLEncoder

另请参见:
JMenuItem, JSeparator, JMenuBar, JPopupMenu

嵌套类摘要
protected  class JMenu.AccessibleJMenu
          此类实现 JMenu 类的可访问性支持。
protected  class JMenu.WinListener
          观察弹出窗口关闭的侦听器类。
 
从类 javax.swing.JMenuItem 继承的嵌套类/接口
JMenuItem.AccessibleJMenuItem
 
从类 javax.swing.AbstractButton 继承的嵌套类/接口
AbstractButton.AccessibleAbstractButton, AbstractButton.ButtonChangeListener
 
从类 javax.swing.JComponent 继承的嵌套类/接口
JComponent.AccessibleJComponent
 
从类 java.awt.Container 继承的嵌套类/接口
Container.AccessibleAWTContainer
 
从类 java.awt.Component 继承的嵌套类/接口
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
字段摘要
protected  JMenu.WinListener popupListener
          弹出菜单的窗口关闭侦听器。
 
从类 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_PROPERTY
 
从类 javax.swing.JComponent 继承的字段
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
从类 java.awt.Component 继承的字段
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
从接口 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
 
从接口 java.awt.image.ImageObserver 继承的字段
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
构造方法摘要
JMenu()
          构造没有文本的新 JMenu
JMenu(Action a)
          构造一个从提供的 Action 获取其属性的菜单。
JMenu(String s)
          构造一个新 JMenu,用提供的字符串作为其文本。
JMenu(String s, boolean b)
          构造一个新 JMenu,用提供的字符串作为其文本并指定其是否为分离式 (tear-off) 菜单。
 
方法摘要
 JMenuItem add(Action a)
          创建连接到指定 Action 对象的新菜单项,并将其追加到此菜单的末尾。
 Component add(Component c)
          将某个组件追加到此菜单的末尾。
 Component add(Component c, int index)
          将指定组件添加到此容器的给定位置上。
 JMenuItem add(JMenuItem menuItem)
          将某个菜单项追加到此菜单的末尾。
 JMenuItem add(String s)
          创建具有指定文本的新菜单项,并将其追加到此菜单的末尾。
 void addMenuListener(MenuListener l)
          添加菜单事件的侦听器。
 void addSeparator()
          将新分隔符追加到菜单的末尾。
 void applyComponentOrientation(ComponentOrientation o)
          设置此菜单及其中包含的所有组件的 ComponentOrientation 属性。
protected  PropertyChangeListener createActionChangeListener(JMenuItem b)
          返回一个正确配置的 PropertyChangeListener,它在 Action 发生更改时更新控件。
protected  JMenuItem createActionComponent(Action a)
          该工厂方法创建添加到 JMenuActionJMenuItem
protected  JMenu.WinListener createWinListener(JPopupMenu p)
          创建弹出菜单的窗口关闭侦听器。
 void doClick(int pressTime)
          以编程方式执行“单击”。
protected  void fireMenuCanceled()
          通知所有对此事件类型的通知感兴趣的已注册侦听器。
protected  void fireMenuDeselected()
          通知所有对此事件类型的通知感兴趣的已注册侦听器。
protected  void fireMenuSelected()
          通知所有对此事件类型的通知感兴趣的已注册侦听器。
 AccessibleContext getAccessibleContext()
          获取与此 JMenu 关联的 AccessibleContext。
 Component getComponent()
          返回用于绘制此 MenuElementjava.awt.Component
 int getDelay()
          返回子菜单向上或向下弹出前建议的延迟(以毫秒为单位)。
 JMenuItem getItem(int pos)
          返回指定位置的 JMenuItem
 int getItemCount()
          返回菜单上的项数,包括分隔符。
 Component getMenuComponent(int n)
          返回位于位置 n 的组件。
 int getMenuComponentCount()
          返回菜单上的组件数。
 Component[] getMenuComponents()
          返回菜单子组件的 Component 数组。
 MenuListener[] getMenuListeners()
          返回利用 addMenuListener() 添加到此 JMenu 的所有 MenuListener 组成的数组。
 JPopupMenu getPopupMenu()
          返回与此菜单关联的弹出菜单。
protected  Point getPopupMenuOrigin()
          计算 JMenu 的弹出菜单的原点。
 MenuElement[] getSubElements()
          返回由 MenuElement 组成的数组,其中包含此菜单组件的子菜单。
 String getUIClassID()
          返回呈现此组件的 L&F 类的名称。
 JMenuItem insert(Action a, int pos)
          在给定位置插入连接到指定 Action 对象的新菜单项。
 JMenuItem insert(JMenuItem mi, int pos)
          在给定位置插入指定的 JMenuitem
 void insert(String s, int pos)
          在给定位置插入具有指定文本的新菜单项。
 void insertSeparator(int index)
          在指定的位置插入分隔符。
 boolean isMenuComponent(Component c)
          如果在子菜单层次结构中存在指定的组件,则返回 true。
 boolean isPopupMenuVisible()
          如果菜单的弹出窗口可见,则返回 true。
 boolean isSelected()
          如果菜单是当前选择的(即高亮显示的)菜单,则返回 true。
 boolean isTearOff()
          如果此菜单是分离式的,则返回 true。
 boolean isTopLevelMenu()
          如果菜单是“顶层菜单”(即菜单栏的直接子级),则返回 true。
 void menuSelectionChanged(boolean isIncluded)
          当菜单栏选择更改为激活或取消激活此菜单时传递消息。
protected  String paramString()
          返回此 JMenu 的字符串表示形式。
protected  void processKeyEvent(KeyEvent evt)
          处理键击事件,如助记符和加速器。
 void remove(Component c)
          从此菜单移除组件 c
 void remove(int pos)
          从此菜单移除指定索引处的菜单项。
 void remove(JMenuItem item)
          从此菜单移除指定的菜单项。
 void removeAll()
          从此菜单移除所有菜单项。
 void removeMenuListener(MenuListener l)
          移除菜单事件的侦听器。
 void setAccelerator(KeyStroke keyStroke)
          没有为 JMenu 定义 setAccelerator
 void setComponentOrientation(ComponentOrientation o)
          设置语言敏感的方向,用于排序此组件内的元素或文本。
 void setDelay(int d)
          设置菜单的 PopupMenu 向上或向下弹出前建议的延迟。
 void setMenuLocation(int x, int y)
          设置弹出组件的位置。
 void setModel(ButtonModel newModel)
          设置“菜单按钮”的数据模型,即用户单击可以打开或关闭菜单的标签。
 void setPopupMenuVisible(boolean b)
          设置菜单弹出的可见性。
 void setSelected(boolean b)
          设置菜单的选择状态。
 void updateUI()
          利用当前外观的值重置 UI 属性。
 
从类 javax.swing.JMenuItem 继承的方法
actionPropertyChanged, addMenuDragMouseListener, addMenuKeyListener, configurePropertiesFromAction, fireMenuDragMouseDragged, fireMenuDragMouseEntered, fireMenuDragMouseExited, fireMenuDragMouseReleased, fireMenuKeyPressed, fireMenuKeyReleased, fireMenuKeyTyped, getAccelerator, getMenuDragMouseListeners, getMenuKeyListeners, init, isArmed, processKeyEvent, processMenuDragMouseEvent, processMenuKeyEvent, processMouseEvent, removeMenuDragMouseListener, removeMenuKeyListener, setArmed, setEnabled, setUI
 
从类 javax.swing.AbstractButton 继承的方法
addActionListener, addChangeListener, addImpl, addItemListener, checkHorizontalKey, checkVerticalKey, createActionListener, createActionPropertyChangeListener, createChangeListener, createItemListener, doClick, 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, getUI, 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, setText, setUI, setVerticalAlignment, setVerticalTextPosition
 
从类 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, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, 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, update
 
从类 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, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
从类 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, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, resize, resize, setBounds, setBounds, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
从接口 javax.swing.MenuElement 继承的方法
processKeyEvent, processMouseEvent
 

字段详细信息

popupListener

protected JMenu.WinListener popupListener
弹出菜单的窗口关闭侦听器。

另请参见:
JMenu.WinListener
构造方法详细信息

JMenu

public JMenu()
构造没有文本的新 JMenu


JMenu

public JMenu(String s)
构造一个新 JMenu,用提供的字符串作为其文本。

参数:
s - 菜单标签的文本

JMenu

public JMenu(Action a)
构造一个从提供的 Action 获取其属性的菜单。

参数:
a - Action
从以下版本开始:
1.3

JMenu

public JMenu(String s,
             boolean b)
构造一个新 JMenu,用提供的字符串作为其文本并指定其是否为分离式 (tear-off) 菜单。

参数:
s - 菜单标签的文本
b - 菜单是否是分离式的(尚未实现)
方法详细信息

updateUI

public void updateUI()
利用当前外观的值重置 UI 属性。

覆盖:
JMenuItem 中的 updateUI
另请参见:
JComponent.updateUI()

getUIClassID

public String getUIClassID()
返回呈现此组件的 L&F 类的名称。

覆盖:
JMenuItem 中的 getUIClassID
返回:
字符串 "MenuUI"
另请参见:
JComponent.getUIClassID(), UIDefaults.getUI(javax.swing.JComponent)

setModel

public void setModel(ButtonModel newModel)
设置“菜单按钮”的数据模型,即用户单击可以打开或关闭菜单的标签。

覆盖:
JMenuItem 中的 setModel
参数:
newModel - ButtonModel
另请参见:
AbstractButton.getModel()

isSelected

public boolean isSelected()
如果菜单是当前选择的(即高亮显示的)菜单,则返回 true。

覆盖:
AbstractButton 中的 isSelected
返回:
如果选择了菜单,则返回 true;否则返回 false

setSelected

public void setSelected(boolean b)
设置菜单的选择状态。

覆盖:
AbstractButton 中的 setSelected
参数:
b - true 表示选择(高亮显示)菜单,false 表示取消选择菜单

isPopupMenuVisible

public boolean isPopupMenuVisible()
如果菜单的弹出窗口可见,则返回 true。

返回:
如果菜单可见,则返回 true;否则返回 false

setPopupMenuVisible

public void setPopupMenuVisible(boolean b)
设置菜单弹出的可见性。如果未启用菜单,则此方法无效。

参数:
b - 一个 boolean 值,true 表示菜单可见,false 表示隐藏

getPopupMenuOrigin

protected Point getPopupMenuOrigin()
计算 JMenu 的弹出菜单的原点。此方法使用名为 Menu.menuPopupOffsetXMenu.menuPopupOffsetYMenu.submenuPopupOffsetXMenu.submenuPopupOffsetY 的外观属性调整弹出的确切位置。

返回:
菜单的坐标空间中的一个 Point,该点应该用作 JMenu 的弹出菜单的原点
从以下版本开始:
1.3

getDelay

public int getDelay()
返回子菜单向上或向下弹出前建议的延迟(以毫秒为单位)。每个外观 (L&F) 都可以确定它自己查看 delay 属性的策略。在大多数情况下,对于顶层菜单或正在拖动的菜单,不查看延迟。 delay 的默认值为 0。此方法是外观代码的属性,用于管理各种 UI 实现的特质。

返回:
delay 属性

setDelay

public void setDelay(int d)
设置菜单的 PopupMenu 向上或向下弹出前建议的延迟。每个外观 (L&F) 都可以确定它自己查看 delay 属性的策略。在大多数情况下,对于顶层菜单或正在拖动的菜单,不查看延迟。此方法是外观代码的属性,用于管理各种 UI 实现的特质。

参数:
d - 要延迟的毫秒数
抛出:
IllegalArgumentException - 如果 d 小于 0

setMenuLocation

public void setMenuLocation(int x,
                            int y)
设置弹出组件的位置。

参数:
x - 弹出菜单的新位置的 x 坐标
y - 弹出菜单的新位置的 y 坐标

add

public JMenuItem add(JMenuItem menuItem)
将某个菜单项追加到此菜单的末尾。返回添加的菜单项。

参数:
menuItem - 要添加的 JMenuitem
返回:
已添加的 JMenuItem

add

public Component add(Component c)
将某个组件追加到此菜单的末尾。返回添加的组件。

覆盖:
Container 中的 add
参数:
c - 要添加的 Component
返回:
已添加的 Component
另请参见:
Container.addImpl(java.awt.Component, java.lang.Object, int), Container.validate(), JComponent.revalidate()

add

public Component add(Component c,
                     int index)
将指定组件添加到此容器的给定位置上。如果 index 等于 -1,则将组件追加到末尾。

覆盖:
Container 中的 add
参数:
c - 要添加的 Component
index - 要插入组件的位置
返回:
已添加的 Component
另请参见:
remove(javax.swing.JMenuItem), Container.add(Component, int)

add

public JMenuItem add(String s)
创建具有指定文本的新菜单项,并将其追加到此菜单的末尾。

参数:
s - 要添加的菜单项的字符串

add

public JMenuItem add(Action a)
创建连接到指定 Action 对象的新菜单项,并将其追加到此菜单的末尾。

参数:
a - 要添加的菜单项的 Action
另请参见:
Action

createActionComponent

protected JMenuItem createActionComponent(Action a)
该工厂方法创建添加到 JMenuActionJMenuItem

参数:
a - 要添加的菜单项的 Action
返回:
新菜单项
从以下版本开始:
1.3
另请参见:
Action

createActionChangeListener

protected PropertyChangeListener createActionChangeListener(JMenuItem b)
返回一个正确配置的 PropertyChangeListener,它在 Action 发生更改时更新控件。


addSeparator

public void addSeparator()
将新分隔符追加到菜单的末尾。


insert

public void insert(String s,
                   int pos)
在给定位置插入具有指定文本的新菜单项。

参数:
s - 要添加的菜单项的文本
pos - 指定要添加新菜单项的位置的整数
抛出:
IllegalArgumentException - 当 pos 的值 < 0 时

insert

public JMenuItem insert(JMenuItem mi,
                        int pos)
在给定位置插入指定的 JMenuitem

参数:
mi - 要添加的 JMenuitem
pos - 指定要添加新 JMenuitem 的位置的整数
返回:
新菜单项
抛出:
IllegalArgumentException - 如果 pos 的值 < 0

insert

public JMenuItem insert(Action a,
                        int pos)
在给定位置插入连接到指定 Action 对象的新菜单项。

参数:
a - 要添加的菜单项的 Action 对象
pos - 指定要添加新菜单项的位置的整数
抛出:
IllegalArgumentException - 如果 pos 的值 < 0

insertSeparator

public void insertSeparator(int index)
在指定的位置插入分隔符。

参数:
index - 指定要插入菜单分隔符的位置的整数
抛出:
IllegalArgumentException - 如果 index 的值 < 0

getItem

public JMenuItem getItem(int pos)
返回指定位置的 JMenuItem。如果位于 pos 的组件不是菜单项,则返回 null。包含此方法是为了 AWT 兼容性。

参数:
pos - 指定位置的整数
返回:
指定位置的菜单项;如果指定位置的项不是菜单项,则返回 null
抛出:
IllegalArgumentException - 如果 pos 的值 < 0

getItemCount

public int getItemCount()
返回菜单上的项数,包括分隔符。包含此方法是为了与 AWT 的兼容性。

返回:
等于菜单上的项数的整数
另请参见:
getMenuComponentCount()

isTearOff

public boolean isTearOff()
如果此菜单是分离式的,则返回 true。此方法尚未实现。

返回:
如果菜单是分离式的,则返回 true;否则返回 false
抛出:
Error - 如果调用(此方法尚未实现)

remove

public void remove(JMenuItem item)
从此菜单移除指定的菜单项。如果不存在弹出菜单,则此方法无效。

参数:
item - 要从该菜单移除的 JMenuItem

remove

public void remove(int pos)
从此菜单移除指定索引处的菜单项。

覆盖:
Container 中的 remove
参数:
pos - 要移除的项的位置
抛出:
IllegalArgumentException - 如果 pos 的值 < 0 或者 pos 大于菜单项数
另请参见:
Container.add(java.awt.Component), Container.validate(), Container.getComponentCount()

remove

public void remove(Component c)
从此菜单移除组件 c

覆盖:
Container 中的 remove
参数:
c - 要移除的组件
另请参见:
Container.add(java.awt.Component), Container.validate(), Container.remove(int)

removeAll

public void removeAll()
从此菜单移除所有菜单项。

覆盖:
Container 中的 removeAll
另请参见:
Container.add(java.awt.Component), Container.remove(int)

getMenuComponentCount

public int getMenuComponentCount()
返回菜单上的组件数。

返回:
包含菜单上的组件数的整数

getMenuComponent

public Component getMenuComponent(int n)
返回位于位置 n 的组件。

参数:
n - 要返回的组件的位置
返回:
请求的组件;如果不存在弹出菜单,则返回 null

getMenuComponents

public Component[] getMenuComponents()
返回菜单子组件的 Component 数组。注意,此操作返回弹出菜单中的所有 Component,包括分隔符。

返回:
Component 数组;如果不存在弹出菜单,则返回空数组

isTopLevelMenu

public boolean isTopLevelMenu()
如果菜单是“顶层菜单”(即菜单栏的直接子级),则返回 true。

返回:
如果从菜单栏激活菜单,则返回 true;如果从另一个菜单的菜单项激活菜单,则返回 false

isMenuComponent

public boolean isMenuComponent(Component c)
如果在子菜单层次结构中存在指定的组件,则返回 true。

参数:
c - 要测试的 Component
返回:
如果 Component 存在,则返回 true;否则返回 false

getPopupMenu

public JPopupMenu getPopupMenu()
返回与此菜单关联的弹出菜单。如果不存在弹出菜单,则将创建一个。


addMenuListener

public void addMenuListener(MenuListener l)
添加菜单事件的侦听器。

参数:
l - 要添加的侦听器

removeMenuListener

public void removeMenuListener(MenuListener l)
移除菜单事件的侦听器。

参数:
l - 要移除的侦听器

getMenuListeners

public MenuListener[] getMenuListeners()
返回利用 addMenuListener() 添加到此 JMenu 的所有 MenuListener 组成的数组。

返回:
添加的所有 MenuListener,如果没有添加侦听器,则返回一个空数组
从以下版本开始:
1.4

fireMenuSelected

protected void fireMenuSelected()
通知所有对此事件类型的通知感兴趣的已注册侦听器。以延迟方式创建事件实例。

抛出:
Error - 如果存在 null 侦听器
另请参见:
EventListenerList

fireMenuDeselected

protected void fireMenuDeselected()
通知所有对此事件类型的通知感兴趣的已注册侦听器。以延迟方式创建事件实例。

抛出:
Error - 如果存在 null 侦听器
另请参见:
EventListenerList

fireMenuCanceled

protected void fireMenuCanceled()
通知所有对此事件类型的通知感兴趣的已注册侦听器。以延迟方式创建事件实例。

抛出:
Error - 如果存在 null 侦听器
另请参见:
EventListenerList

createWinListener

protected JMenu.WinListener createWinListener(JPopupMenu p)
创建弹出菜单的窗口关闭侦听器。

参数:
p - JPopupMenu
返回:
新窗口关闭侦听器
另请参见:
JMenu.WinListener

menuSelectionChanged

public void menuSelectionChanged(boolean isIncluded)
当菜单栏选择更改为激活或取消激活此菜单时传递消息。重写 JMenuItem.menuSelectionChanged

指定者:
接口 MenuElement 中的 menuSelectionChanged
覆盖:
JMenuItem 中的 menuSelectionChanged
参数:
isIncluded - 如果此菜单处于激活状态,则返回 true;如果不是,则返回 false
另请参见:
MenuSelectionManager.setSelectedPath(MenuElement[])

getSubElements

public MenuElement[] getSubElements()
返回由 MenuElement 组成的数组,其中包含此菜单组件的子菜单。如果弹出菜单为 null,则返回空数组。要求此方法遵守 MenuElement 接口。注意,由于 JSeparator 不遵守 MenuElement 接口,因此此数组只包含 JMenuItem

指定者:
接口 MenuElement 中的 getSubElements
覆盖:
JMenuItem 中的 getSubElements
返回:
MenuElement 对象的数组。

getComponent

public Component getComponent()
返回用于绘制此 MenuElementjava.awt.Component。返回的组件用于转换事件并检测某个事件是否位于菜单组件中。

指定者:
接口 MenuElement 中的 getComponent
覆盖:
JMenuItem 中的 getComponent
返回:
绘制此菜单项的 Component

applyComponentOrientation

public void applyComponentOrientation(ComponentOrientation o)
设置此菜单及其中包含的所有组件的 ComponentOrientation 属性。这包括由 getMenuComponents 返回的所有组件。

覆盖:
Container 中的 applyComponentOrientation
参数:
o - 此菜单的新组件的方向性和其中包含组件的方向性。
抛出:
NullPointerException - 如果 orientation 为 null。
从以下版本开始:
1.4
另请参见:
Component.setComponentOrientation(java.awt.ComponentOrientation), Component.getComponentOrientation()

setComponentOrientation

public void setComponentOrientation(ComponentOrientation o)
从类 Component 复制的描述
设置语言敏感的方向,用于排序此组件内的元素或文本。语言敏感的 LayoutManagerComponent 子类使用此属性来确定如何布局并绘制组件。

在构造时,组件的方向设置为 ComponentOrientation.UNKNOWN,表示尚未显式地指定它。UNKNOWN 方向的行为与 ComponentOrientation.LEFT_TO_RIGHT 相同。

要设置单个组件的方向,请使用此方法。要设置整个组件层次结构的方向,请使用 applyComponentOrientation

覆盖:
Component 中的 setComponentOrientation
另请参见:
ComponentOrientation

setAccelerator

public void setAccelerator(KeyStroke keyStroke)
没有为 JMenu 定义 setAccelerator。而使用 setMnemonic 来代替。

覆盖:
JMenuItem 中的 setAccelerator
参数:
keyStroke - 键击组合,它调用 JMenuItem 的 actionlistener 而不必导航菜单的层次结构
抛出:
Error - 如果调用(没有为 JMenu 定义此方法。使用 setMnemonic 来代替)

processKeyEvent

protected void processKeyEvent(KeyEvent evt)
处理键击事件,如助记符和加速器。

覆盖:
JComponent 中的 processKeyEvent
参数:
evt - 要处理的键事件
另请参见:
KeyEvent, KeyListener, KeyboardFocusManager, DefaultKeyboardFocusManager, Component.processEvent(java.awt.AWTEvent), Component.dispatchEvent(java.awt.AWTEvent), Component.addKeyListener(java.awt.event.KeyListener), Component.enableEvents(long), Component.isShowing()

doClick

public void doClick(int pressTime)
以编程方式执行“单击”。为使菜单弹出,此方法重写 AbstractButton.doClick 方法。

覆盖:
AbstractButton 中的 doClick
参数:
pressTime - 指示按下按钮的毫秒数

paramString

protected String paramString()
返回此 JMenu 的字符串表示形式。此方法仅在进行调试的时候使用,对于各个实现,所返回字符串的内容和格式可能有所不同。返回的字符串可能为空,但不可能为 null

覆盖:
JMenuItem 中的 paramString
返回:
此 JMenu 的字符串表示形式。

getAccessibleContext

public AccessibleContext getAccessibleContext()
获取与此 JMenu 关联的 AccessibleContext。对于 JMenu,AccessibleContext 采用 AccessibleJMenu 的形式。必要时创建一个新的 AccessibleJMenu 实例。

指定者:
接口 Accessible 中的 getAccessibleContext
覆盖:
JMenuItem 中的 getAccessibleContext
返回:
一个 AccessibleJMenu,它充当此 JMenu 的 AccessibleContext

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策