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
`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