所有类


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 就是“右拉”菜单。

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

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

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

嵌套类摘要
protected  classJMenu.AccessibleJMenu
          此类实现 JMenu 类的可访问性支持。
protected  classJMenu.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.BltBufferStrategy, Component.FlipBufferStrategy
 
字段摘要
protected  JMenu.WinListenerpopupListener
          弹出菜单的窗口关闭侦听器。
 
从类 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) 菜单。
 
方法摘要
 JMenuItemadd(Action a)
          创建连接到指定 Action 对象的新菜单项,并将其追加到此菜单的末尾。
 Componentadd(Component c)
          将组件追加到此菜单的末尾。
 Componentadd(Component c, int index)
          将指定组件添加到此容器的给定位置上。
 JMenuItemadd(JMenuItem menuItem)
          将某个菜单项追加到此菜单的末尾。
 JMenuItemadd(String s)
          创建具有指定文本的菜单项,并将其追加到此菜单的末尾。
 voidaddMenuListener(MenuListener l)
          添加菜单事件的侦听器。
 voidaddSeparator()
          将新分隔符追加到菜单的末尾。
 voidapplyComponentOrientation(ComponentOrientation o)
          设置此菜单及其中包含的所有组件的 ComponentOrientation 属性。
protected  voidconfigurePropertiesFromAction(Action a)
          该工厂方法根据 Action 实例的值设置 ActionEvent 源的属性。
protected  PropertyChangeListenercreateActionChangeListener(JMenuItem b)
          返回一个正确配置的 PropertyChangeListener,它在 Action 发生更改时更新控件。
protected  JMenuItemcreateActionComponent(Action a)
          该工厂方法创建添加到 JMenuActionJMenuItem
protected  JMenu.WinListenercreateWinListener(JPopupMenu p)
          创建弹出菜单的窗口关闭侦听器。
 voiddoClick(int pressTime)
          以编程方式执行“单击”。
protected  voidfireMenuCanceled()
          通知所有对此事件类型的通知感兴趣的已注册侦听器。
protected  voidfireMenuDeselected()
          通知所有对此事件类型的通知感兴趣的已注册侦听器。
protected  voidfireMenuSelected()
          通知所有对此事件类型的通知感兴趣的已注册侦听器。
 AccessibleContextgetAccessibleContext()
          获取与此 JMenu 关联的 AccessibleContext。
 ComponentgetComponent()
          返回用于绘制此 MenuElementjava.awt.Component
 intgetDelay()
          返回子菜单向上或向下弹出前建议的延迟(以毫秒为单位)。
 JMenuItemgetItem(int pos)
          返回指定位置的 JMenuItem
 intgetItemCount()
          返回菜单上的项数,包括分隔符。
 ComponentgetMenuComponent(int n)
          返回位于 n 的组件。
 intgetMenuComponentCount()
          返回菜单上的组件数。
 Component[]getMenuComponents()
          返回菜单子组件的 Component 数组。
 MenuListener[]getMenuListeners()
          返回利用 addMenuListener() 添加到此 JMenu 的所有 MenuListener 组成的数组。
 JPopupMenugetPopupMenu()
          返回与此菜单关联的弹出菜单。
protected  PointgetPopupMenuOrigin()
          计算 JMenu 的弹出菜单的原点。
 MenuElement[]getSubElements()
          返回由 MenuElement 组成的数组,其中包含此菜单组件的子菜单。
 StringgetUIClassID()
          返回呈现此组件的 L&F 类的名称。
 JMenuIteminsert(Action a, int pos)
          在给定位置插入连接到指定 Action 对象的新菜单项。
 JMenuIteminsert(JMenuItem mi, int pos)
          在给定位置插入指定的 JMenuitem
 voidinsert(String s, int pos)
          在给定的位置插入一个具有指定文本的新菜单项。
 voidinsertSeparator(int index)
          在指定的位置插入分隔符。
 booleanisMenuComponent(Component c)
          如果在子菜单层次结构中存在指定的组件,则返回 true。
 booleanisPopupMenuVisible()
          如果菜单的弹出窗口可见,则返回 true。
 booleanisSelected()
          如果菜单是当前选择的(即突出显示的)菜单,则返回 true。
 booleanisTearOff()
          如果菜单是分离式的,则返回 true。
 booleanisTopLevelMenu()
          如果菜单是“顶层菜单”(即菜单栏的直接子级),则返回 true。
 voidmenuSelectionChanged(boolean isIncluded)
          当菜单栏选择更改为激活或取消激活此菜单时传递消息。
protected  StringparamString()
          返回此 JMenu 的字符串表示形式。
protected  voidprocessKeyEvent(KeyEvent evt)
          处理快捷键事件,如助记符和加速器。
 voidremove(Component c)
          从此菜单移除组件 c
 voidremove(int pos)
          从此菜单移除指定索引处的菜单项。
 voidremove(JMenuItem item)
          从此菜单移除指定的菜单项。
 voidremoveAll()
          从此菜单移除所有菜单项。
 voidremoveMenuListener(MenuListener l)
          移除菜单事件的侦听器。
 voidsetAccelerator(KeyStroke keyStroke)
          没有为 JMenu 定义 setAccelerator
 voidsetComponentOrientation(ComponentOrientation o)
          设置语言敏感的方向,用于排序此组件内的元素或文本。
 voidsetDelay(int d)
          设置菜单的 PopupMenu 向上或向下弹出前建议的延迟。
 voidsetMenuLocation(int x, int y)
          设置弹出组件的位置。
 voidsetModel(ButtonModel newModel)
          设置“菜单按钮”的数据模型,即用户单击可以打开或关闭菜单的标签。
 voidsetPopupMenuVisible(boolean b)
          设置菜单弹出的可见性。
 voidsetSelected(boolean b)
          设置菜单的选择状态。
 voidupdateUI()
          利用当前外观的值重置 UI 属性。
 
从类 javax.swing.JMenuItem 继承的方法
addMenuDragMouseListener, addMenuKeyListener, createActionPropertyChangeListener, 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, createChangeListener, createItemListener, doClick, fireActionPerformed, fireItemStateChanged, fireStateChanged, getAction, getActionCommand, getActionListeners, getChangeListeners, getDisabledIcon, getDisabledSelectedIcon, getDisplayedMnemonicIndex, 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, setAction, setActionCommand, setBorderPainted, setContentAreaFilled, setDisabledIcon, setDisabledSelectedIcon, setDisplayedMnemonicIndex, setFocusPainted, 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, 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, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, 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, 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)
设置“菜单按钮”的数据模型,即用户单击可以打开或关闭菜单的标签。

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

isSelected

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

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