/OpenJDK 8 GUI

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.



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.


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

Process a key event.

void menuSelectionChanged(boolean isIncluded)

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


MenuElement[] getSubElements()

This method should return an array containing the sub-elements for the receiving menu element

an array of MenuElements


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.

the Component value

© 1993–2017, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.