The JMenuItem Class
Before discussing menus, we should
introduce the JMenuItem
class first. Figure 14-6
shows the class diagram for the JMenuItem
component.
Figure 14-6. JMenuItem class diagram
A JMenuItem
serves as a wrapper for strings and
images to be used as elements in a menu. We mentioned earlier that
the JMenuItem
class is essentially just a
specialized button. In fact, the JMenuItem
class
extends the AbstractButton
class. Its logic,
however, is somewhat different from the standard button. When the
mouse passes over a menu item, Swing considers the menu item to be
selected. If the user releases the mouse over
the menu item, it is considered chosen and should perform its action.
There is an unfortunate conflict in terminology here. Swing considers
a menu item “selected” when the mouse moves over it, as
updated by the MenuSelectionManager
and classes
that implement the MenuElement
interface. On the
other hand, Swing considers a button “selected” when it
remains in one of two persistent states, such as a checkbox button
remaining in the checked state until clicked again. So when a menu
item is selected, its button model is really
armed. Conversely, when a menu item is
deselected, its button model is disarmed. Finally, when the user
releases the mouse button over the menu item, the button is
considered clicked and the
AbstractButton
’s
doClick()
method is invoked.
Menu Item Shortcuts ...
Get Java Swing now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.