Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.3.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javax.swing
Class JMenuBar

    java.lang.Object
      |
      +--java.awt.Component
            |
            +--java.awt.Container
                  |
                  +--javax.swing.JComponent
                        |
                        +--javax.swing.JMenuBar

All Implemented Interfaces:
  Accessible, ImageObserver, MenuContainer, MenuElement, Serializable

Direct Known Subclasses:
  BasicInternalFrameTitlePane.SystemMenuBar

public class JMenuBar
extends JComponent
implements Accessible, MenuElement

An implementation of a menu bar. You add `JMenu` objects to the menu bar to construct a menu. When the user selects a `JMenu` object, its associated `JPopupMenu` is displayed, allowing the user to select one of the `JMenuItems` on it.

For information and examples of using menu bars see How to Use Menus, a section in The Java Tutorial. For the keyboard keys used by this component in the standard Look and Feel (L&F) renditions, see the JMenuBar key assignments.

Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. A future release of Swing will provide support for long term persistence.

See Also:
  `JMenu`, `JPopupMenu`, `JMenuItem`, Serialized Form

Inner Class Summary
`protected class` | `JMenuBar.AccessibleJMenuBar` This class implements accessibility support for the `JMenuBar` class.

Inner classes inherited from class javax.swing.JComponent
`JComponent.AccessibleJComponent`

Inner classes inherited from class java.awt.Container
`Container.AccessibleAWTContainer`

Inner classes inherited from class java.awt.Component
`Component.AccessibleAWTComponent`

Fields inherited from class javax.swing.JComponent
`accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW`

Fields inherited from class java.awt.Component
`BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

Fields inherited from interface java.awt.image.ImageObserver
`ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

Constructor Summary
`JMenuBar()` Creates a new menu bar.

Method Summary
`JMenu` | `add(JMenu c)` Appends the specified menu to the end of the menu bar.
`void` | `addNotify()` Overrides `JComponent.addNotify` to register this menu bar with the current keyboard manager.
`AccessibleContext` | `getAccessibleContext()` Gets the AccessibleContext associated with this JMenuBar.
`Component` | `getComponent()` Implemented to be a `MenuElement`.
`Component` | `getComponentAtIndex(int i)` Deprecated. replaced by `getComponent(int i)`
`int` | `getComponentIndex(Component c)` Returns the index of the specified component.
`JMenu` | `getHelpMenu()` Gets the help menu for the menu bar.
`Insets` | `getMargin()` Returns the margin between the menubar's border and its menus.
`JMenu` | `getMenu(int index)` Returns the menu at the specified position in the menu bar.
`int` | `getMenuCount()` Returns the number of items in the menu bar.
`SingleSelectionModel` | `getSelectionModel()` Returns the model object that handles single selections.
`MenuElement[]` | `getSubElements()` Implemented to be a `MenuElement` -- returns the menus in this menu bar.
`MenuBarUI` | `getUI()` Returns the menubar's current UI.
`String` | `getUIClassID()` Returns the name of the L&F class that renders this component.
`boolean` | `isBorderPainted()` Returns true if the menu bars border should be painted.
`boolean` | `isManagingFocus()` Returns true to indicate that this component manages focus events internally.
`boolean` | `isSelected()` Returns true if the menu bar currently has a component selected.
`void` | `menuSelectionChanged(boolean isIncluded)` Implemented to be a `MenuElemen`t -- does nothing.``
`protected void` | `paintBorder(Graphics g)` Paints the menubar's border if `BorderPainted` property is true.
`protected String` | `paramString()` Returns a string representation of this `JMenuBar`.
`protected boolean` | `processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed)` Subclassed to check all the child menus.
`void` | `processKeyEvent(KeyEvent e, MenuElement[] path, MenuSelectionManager manager)` Implemented to be a `MenuElement` -- does nothing.
`void` | `processMouseEvent(MouseEvent event, MenuElement[] path, MenuSelectionManager manager)` Implemented to be a `MenuElement` -- does nothing.
`void` | `removeNotify()` Overrides `JComponent.removeNotify` to unregister this menu bar with the current keyboard manager.
`void` | `setBorderPainted(boolean b)` Sets whether the border should be painted.
`void` | `setHelpMenu(JMenu menu)` Sets the help menu that appears when the user selects the "help" option in the menu bar.
`void` | `setMargin(Insets m)` Sets the margin between the menubar's border and its menus.
`void` | `setSelected(Component sel)` Sets the currently selected component, producing a a change to the selection model.
`void` | `setSelectionModel(SingleSelectionModel model)` Sets the model object to handle single selections.
`void` | `setUI(MenuBarUI ui)` Sets the L&F object that renders this component.
`void` | `updateUI()` Notification from the `UIFactory` that the L&F has changed.

Methods inherited from class javax.swing.JComponent
`addAncestorListener, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getVerifyInputWhenFocusTarget, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, hide, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processFocusEvent, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update`

Methods inherited from class java.awt.Container
`add, add, add, add, add, addContainerListener, addImpl, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getLayout, insets, invalidate, isAncestorOf, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setLayout, validate, validateTree`

Methods inherited from class java.awt.Component
`action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocationOnScreen, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, imageUpdate, inside, isDisplayable, isEnabled, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### JMenuBar

    public JMenuBar()

  Creates a new menu bar.

Method Detail

### getUI

    public MenuBarUI getUI()

  Returns the menubar's current UI.
  See Also:
    `setUI(javax.swing.plaf.MenuBarUI)`

### setUI

    public void setUI(MenuBarUI ui)

  Sets the L&F object that renders this component.
  Parameters:
    `ui` - the new MenuBarUI L&F object
  See Also:
    `UIDefaults.getUI(javax.swing.JComponent)`

### updateUI

    public void updateUI()

  Notification from the `UIFactory` that the L&F has changed. Called to replace the UI with the latest version from the `UIFactory`.
  Overrides:
    `updateUI` in class `JComponent`
  See Also:
    `JComponent.updateUI()`

### getUIClassID

    public String getUIClassID()

  Returns the name of the L&F class that renders this component.
  Overrides:
    `getUIClassID` in class `JComponent`
  Returns:
    the string "MenuBarUI"
  See Also:
    `JComponent.getUIClassID()`, `UIDefaults.getUI(javax.swing.JComponent)`

### getSelectionModel

    public SingleSelectionModel getSelectionModel()

  Returns the model object that handles single selections.
  Returns:
    the `SingleSelectionModel` property
  See Also:
    `SingleSelectionModel`

### setSelectionModel

    public void setSelectionModel(SingleSelectionModel model)

  Sets the model object to handle single selections.
  Parameters:
    `model` - the `SingleSelectionModel` to use
  See Also:
    `SingleSelectionModel`

### add

    public JMenu add(JMenu c)

  Appends the specified menu to the end of the menu bar.
  Parameters:
    `c` - the `JMenu` component to add
  Returns:
    the menu component

### getMenu

    public JMenu getMenu(int index)

  Returns the menu at the specified position in the menu bar.
  Parameters:
    `index` - an integer giving the position in the menu bar, where 0 is the first position
  Returns:
    the `JMenu` at that position, or `null` if if there is no `JMenu` at that position (ie. if it is a `JMenuItem`)

### getMenuCount

    public int getMenuCount()

  Returns the number of items in the menu bar.
  Returns:
    the number of items in the menu bar

### setHelpMenu

    public void setHelpMenu(JMenu menu)

  Sets the help menu that appears when the user selects the "help" option in the menu bar. This method is not yet implemented and will throw an exception.
  Parameters:
    `menu` - the JMenu that delivers help to the user

### getHelpMenu

    public JMenu getHelpMenu()

  Gets the help menu for the menu bar. This method is not yet implemented and will throw an exception.
  Returns:
    the `JMenu` that delivers help to the user

### getComponentAtIndex

    public Component getComponentAtIndex(int i)

  Deprecated. replaced by `getComponent(int i)`

  Returns the component at the specified index.
  Parameters:
    `i` - an integer specifying the position, where 0 is first
  Returns:
    the `Component` at the position, or `null` for an invalid index

### getComponentIndex

    public int getComponentIndex(Component c)

  Returns the index of the specified component.
  Parameters:
    `c` - the `Component` to find
  Returns:
    an integer giving the component's position, where 0 is first; or -1 if it can't be found

### setSelected

    public void setSelected(Component sel)

  Sets the currently selected component, producing a a change to the selection model.
  Parameters:
    `sel` - the `Component` to select

### isSelected

    public boolean isSelected()

  Returns true if the menu bar currently has a component selected.
  Returns:
    true if a selection has been made, else false

### isBorderPainted

    public boolean isBorderPainted()

  Returns true if the menu bars border should be painted.
  Returns:
    true if the border should be painted, else false

### setBorderPainted

    public void setBorderPainted(boolean b)

  Sets whether the border should be painted.
  Parameters:
    `b` - if true and border property is not `null`, the border is painted.
  See Also:
    `isBorderPainted()`

### paintBorder

    protected void paintBorder(Graphics g)

  Paints the menubar's border if `BorderPainted` property is true.
  Overrides:
    `paintBorder` in class `JComponent`
  Parameters:
    `g` - the `Graphics` context to use for painting
  See Also:
    `JComponent.paint(java.awt.Graphics)`, `JComponent.setBorder(javax.swing.border.Border)`

### setMargin

    public void setMargin(Insets m)

  Sets the margin between the menubar's border and its menus. Setting to `null` will cause the menubar to use the default margins.
  Parameters:
    `margin` - an Insets object containing the margin values
  See Also:
    `Insets`

### getMargin

    public Insets getMargin()

  Returns the margin between the menubar's border and its menus. If there is no previous margin, it will create a default margin with zero size.
  Returns:
    an `Insets` object containing the margin values
  See Also:
    `Insets`

### processMouseEvent

    public void processMouseEvent(MouseEvent event,
                                  MenuElement[] path,
                                  MenuSelectionManager manager)

  Implemented to be a `MenuElement` -- does nothing.
  Specified by:
    `processMouseEvent` in interface `MenuElement`
  See Also:
    `getSubElements()`

### processKeyEvent

    public void processKeyEvent(KeyEvent e,
                                MenuElement[] path,
                                MenuSelectionManager manager)

  Implemented to be a `MenuElement` -- does nothing.
  Specified by:
    `processKeyEvent` in interface `MenuElement`
  See Also:
    `getSubElements()`

### menuSelectionChanged

    public void menuSelectionChanged(boolean isIncluded)

  Implemented to be a `MenuElemen`t -- does nothing.``
  Specified by:
    `menuSelectionChanged` in interface `MenuElement`
  See Also:
    `getSubElements()`

### getSubElements

    public MenuElement[] getSubElements()

  Implemented to be a `MenuElement` -- returns the menus in this menu bar. This is the reason for implementing the `MenuElement` interface -- so that the menu bar can be treated the same as other menu elements.
  Specified by:
    `getSubElements` in interface `MenuElement`
  Returns:
    an array of menu items in the menu bar.

### getComponent

    public Component getComponent()

  Implemented to be a `MenuElement`. Returns this object.
  Specified by:
    `getComponent` in interface `MenuElement`
  Returns:
    the current `Component` (this)
  See Also:
    `getSubElements()`

### paramString

    protected String paramString()

  Returns a string representation of this `JMenuBar`. This method is intended to be used only for debugging purposes, and the content and format of the returned string may vary between implementations. The returned string may be empty but may not be `null`.
  Overrides:
    `paramString` in class `JComponent`
  Returns:
    a string representation of this `JMenuBar`

### getAccessibleContext

    public AccessibleContext getAccessibleContext()

  Gets the AccessibleContext associated with this JMenuBar. For JMenuBars, the AccessibleContext takes the form of an AccessibleJMenuBar. A new AccessibleJMenuBar instance is created if necessary.
  Specified by:
    `getAccessibleContext` in interface `Accessible`
  Overrides:
    `getAccessibleContext` in class `JComponent`
  Returns:
    an AccessibleJMenuBar that serves as the AccessibleContext of this JMenuBar

### isManagingFocus

    public boolean isManagingFocus()

  Returns true to indicate that this component manages focus events internally.
  Overrides:
    `isManagingFocus` in class `JComponent`
  Returns:
    true

### processKeyBinding

    protected boolean processKeyBinding(KeyStroke ks,
                                        KeyEvent e,
                                        int condition,
                                        boolean pressed)

  Subclassed to check all the child menus.
  Overrides:
    `processKeyBinding` in class `JComponent`
  Following copied from class: `javax.swing.JComponent`
  Returns:
    true if there was a binding to an action, and the action was enabled

### addNotify

    public void addNotify()

  Overrides `JComponent.addNotify` to register this menu bar with the current keyboard manager.
  Overrides:
    `addNotify` in class `JComponent`
  Following copied from class: `javax.swing.JComponent`
  See Also:
    `JComponent.registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)`

### removeNotify

    public void removeNotify()

  Overrides `JComponent.removeNotify` to unregister this menu bar with the current keyboard manager.
  Overrides:
    `removeNotify` in class `JComponent`
  Following copied from class: `javax.swing.JComponent`
  See Also:
    `JComponent.registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.3.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Submit a bug or feature
For further API reference and developer documentation, see Java 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Java, Java 2D, and JDBC are trademarks or registered trademarks of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-2001 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.