The JMenu Class
The JMenu
class
represents the anchored menus attached to a JMenuBar
or another JMenu
. Menus directly attached to a menu bar
are called top-level menus. Submenus, on the other hand, are not attached to a menu
bar but to a menu item that serves as its title. This menu item title is
typically marked by a right arrow, indicating that its menu appears
alongside the menu item if the user selects it. See Figure 14-11.
Figure 14-11. Top-level menu and submenu
JMenu
is a curious class. It
contains a MenuUI
delegate, but it
uses a ButtonModel
for its data
model. To see why this is the case, it helps to visualize a menu as two components: a menu item and a pop-up menu. The menu item serves as the title. When it is
pressed, it signals the pop-up menu to show itself either below or
directly to the right of the menu item. JMenu
actually extends the JMenuItem
class, which makes it possible to
implement the title portion of the menu. This, in effect, makes it a
specialized button. On some platforms you can use the mnemonic
property of the JMenuItem
superclass to define a shortcut for
the menu’s title and, consequently, the menu. In addition, you can use
the enabled
property of JMenuItem
to disable the menu if desired.
As with pop-up menus, you can add or insert JMenuItem
, Component
, or Action
objects in the pop-up portion of the
menu by calling the add( )
and insert( )
methods. ...
Get Java Swing, 2nd Edition 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.