MenuElement (Java Platform SE 8 )
Keywords: javax.swing.MenuElement interface
Date: 2026-07-22

javax.swing

## Interface MenuElement

- All Known Implementing Classes:
    BasicComboPopup, BasicInternalFrameTitlePane.SystemMenuBar, JCheckBoxMenuItem, JMenu, JMenuBar, JMenuItem, JPopupMenu, JRadioButtonMenuItem, MetalComboBoxUI.MetalComboPopup

      public interface MenuElement

  Any component that can be placed into a menu should implement this interface. This interface is used by `MenuSelectionManager` to handle selection and navigation in menu hierarchies.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `Component` | `getComponent()` This method should return the java.awt.Component used to paint the receiving element.
    `MenuElement[]` | `getSubElements()` This method should return an array containing the sub-elements for the receiving menu element
    `void` | `menuSelectionChanged(boolean isIncluded)` Call by the `MenuSelectionManager` when the `MenuElement` is added or remove from the menu selection.
    `void` | `processKeyEvent(KeyEvent event, MenuElement[] path, MenuSelectionManager manager)` Process a key event.
    `void` | `processMouseEvent(MouseEvent event, MenuElement[] path, MenuSelectionManager manager)` Processes a mouse event.

- - ### Method Detail

    - #### processMouseEvent

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

      Processes a mouse event. `event` is a `MouseEvent` with source being the receiving element's component. `path` is the path of the receiving element in the menu hierarchy including the receiving element itself. `manager` is the `MenuSelectionManager` for the menu hierarchy. This method should process the `MouseEvent` and change the menu selection if necessary by using `MenuSelectionManager`'s API Note: you do not have to forward the event to sub-components. This is done automatically by the `MenuSelectionManager`.

    - #### processKeyEvent

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

      Process a key event.

    - #### menuSelectionChanged

          void menuSelectionChanged(boolean isIncluded)

      Call by the `MenuSelectionManager` when the `MenuElement` is added or remove from the menu selection.

    - #### getSubElements

          MenuElement[] getSubElements()

      This method should return an array containing the sub-elements for the receiving menu element
      Returns:
        an array of MenuElements

    - #### getComponent

          Component getComponent()

      This method should return the java.awt.Component used to paint the receiving element. The returned component will be used to convert events and detect if an event is inside a MenuElement's component.
      Returns:
        the Component value

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.