javax.swing

接口
异常
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,

JDK 1.6 中文手册