Contents | Package | Class | Tree | Deprecated | Index | Help Java 1.2 Beta 3
PREV | NEXT SHOW LISTS | HIDE LISTS

Class java.awt.swing.JMenu

java.lang.Object
    |
    +----java.awt.Component
            |
            +----java.awt.Container
                    |
                    +----java.awt.swing.JComponent
                            |
                            +----java.awt.swing.AbstractButton
                                    |
                                    +----java.awt.swing.JMenuItem
                                            |
                                            +----java.awt.swing.JMenu

public class JMenu
extends JMenuItem
implements Accessible, MenuElement
An implementation of a menu -- a popup window containing JMenuItems that is displayed when the user selects an item on the JMenuBar. In addition to JMenuItems, a JMenu can also contain JSeparators.

In essence, a menu is a button with an associated JPopupMenu. When the "button" is pressed, the JPopupMenu appears. If the "button" is on the JMenuBar, the menu is a top-level window. If the "button" is another menu item, then the JPopupMenu is "pull-right" menu.

Warning: serialized objects of this class will not be compatible with future swing releases. The current serialization support is appropriate for short term storage or RMI between Swing1.0 applications. It will not be possible to load serialized Swing1.0 objects with future releases of Swing. The JDK1.2 release of Swing will be the compatibility baseline for the serialized form of Swing objects.

See Also:
JMenuItem, JSeparator, JMenuBar, JPopupMenu

Inner Class Summary
 JMenu.AccessibleJMenu
The class used to obtain the accessible role for this object.
 JMenu.WinListener
A listener class that watches for a popup window closing.
 
Inner classes inherited from class java.awt.swing.JMenuItem
 JMenuItem.AccessibleJMenuItem
 
Inner classes inherited from class java.awt.swing.AbstractButton
 AbstractButton.AccessibleAbstractButton, AbstractButton.ButtonChangeListener
 
Inner classes inherited from class java.awt.swing.JComponent
 JComponent.AccessibleJComponent
 

Field Summary
JMenu.WinListener  popupListener
The window-closing listener for the popup.
 
Fields inherited from class java.awt.swing.AbstractButton
 actionListener, changeEvent, changeListener, itemListener, model
 
Fields inherited from class java.awt.swing.JComponent
 accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
 BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 

Constructor Summary
 JMenu()
Creates a new JMenu with no text.
 JMenu(String s)
Creates a new JMenu with the supplied string as its text
 JMenu(String s, boolean b)
Creates a new JMenu with the supplied string as its text and specified as a tear-off menu or not.
 

Method Summary
JMenuItem  add(JMenuItem menuItem)
Appends a menuitem to the end of this menu.
Component  add(Component c)
Appends a component to the end of this menu.
void  add(String s)
Creates a new menuitem with the specified text and appends it to the end of this menu.
JMenuItem  add(Action a)
Creates a new menuitem attached to the specified Action object and appends it to the end of this menu.
void  addMenuListener(MenuListener l)
Add a listener for menu events
void  addSeparator()
Append a new separator to the end of the menu.
PropertyChangeListener  createActionChangeListener(JMenuItem b)
 
JMenu.WinListener  createWinListener(JPopupMenu p)
Create a window-closing listener for the popup.
void  fireMenuDeselected()
Notify all listeners that have registered interest for notification on this event type.
void  fireMenuSelected()
Notify all listeners that have registered interest for notification on this event type.
AccessibleContext  getAccessibleContext()
Get the AccessibleContext associated with this JComponent
Component  getComponent()
 
int  getDelay()
Returns the suggested delay before the menu's PopupMenu is popped up or down.
JMenuItem  getItem(int pos)
Returns the JMenuItem at the specified position.
int  getItemCount()
Returns the number of items on the menu, including separators.
Component  getMenuComponent(int n)
Returns the component at position n
int  getMenuComponentCount()
Returns the number of components on the menu.
Component[]  getMenuComponents()
Returns an array of the menu's subcomponents
JPopupMenu  getPopupMenu()
Returns the popupmenu associated with this menu
MenuElement[]  getSubElements()
This method should return an array containing the sub-menu components for this menu component
String  getUIClassID()
Returns the name of the L&F class that renders this component.
void  insert(String s, int pos)
Insert a new menuitem with the specified text at a given position.
JMenuItem  insert(JMenuItem mi, int pos)
Insert the specified JMenuitem at a given position.
JMenuItem  insert(Action a, int pos)
Insert a new menuitem attached to the specified Action object at a given position.
void  insertSeparator(int index)
Inserts a separator at the specified position.
boolean  isMenuComponent(Component c)
Returns true if the specified component exists in the submenu hierarchy.
boolean  isPopupMenuVisible()
Returns true if the menu's popup window is visible.
boolean  isSelected()
Returns true if the menu is currently selected (popped up).
boolean  isTearOff()
Returns true if the menu can be torn off.
boolean  isTopLevelMenu()
Returns true if the menu is a 'top-level menu', that is, if it is the direct child of a menubar.
void  menuSelectionChanged(boolean isIncluded)
 
String  paramString()
Gets the parameter string representing the state of this menu.
void  processKeyEvent(KeyEvent e, MenuElement[] path, MenuSelectionManager manager)
Implemented to be a MenuElement.
void  processKeyEvent(KeyEvent e)
 
void  processMouseEvent(MouseEvent event, MenuElement[] path, MenuSelectionManager manager)
Process a mouse event.
void  remove(JMenuItem item)
Removes the specified menu item from this menu.
void  remove(int pos)
Removes the menu item at the specified index from this menu.
void  removeAll()
Remove all menu items from this menu.
void  removeMenuListener(MenuListener l)
Remove a listener for menu events
void  setAccelerator(KeyStroke keyStroke)
 
void  setDelay(int d)
Sets the suggested delay before the menu's PopupMenu is popped up or down.
void  setMenuLocation(int x, int y)
Set the location of the popup component
void  setModel(ButtonModel newModel)
Set the data model for the "menu button" -- the label that the user clicks to open or close the menu.
void  setPopupMenuVisible(boolean b)
Set the visibility of the Menu's popup portion.
void  setSelected(boolean b)
Sets the selection status of the menu.
void  setUI(java.awt.swing.plaf.MenuUI ui)
Sets the L&F object that renders this component.
void  updateUI()
Notification from the UIFactory that the L&F has changed.
 
Methods inherited from class java.awt.swing.JMenuItem
 getAccelerator, getAccessibleContext, getComponent, getSubElements, getUIClassID, init, isArmed, menuSelectionChanged, processKeyEvent, processMouseEvent, setAccelerator, setArmed, setEnabled, setUI, updateUI
 
Methods inherited from class java.awt.swing.AbstractButton
 addActionListener, addChangeListener, addItemListener, checkHorizontalKey, checkVerticalKey, createActionListener, createChangeListener, createItemListener, doClick, doClick, fireActionPerformed, fireItemStateChanged, fireStateChanged, getActionCommand, getDisabledIcon, getDisabledSelectedIcon, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getLabel, getMargin, getMnemonic, getModel, getPressedIcon, getRolloverIcon, getRolloverSelectedIcon, getSelectedIcon, getSelectedObjects, getText, getUI, getVerticalAlignment, getVerticalTextPosition, init, isBorderPainted, isFocusPainted, isRolloverEnabled, isSelected, paintBorder, removeActionListener, removeChangeListener, removeItemListener, setActionCommand, setBorderPainted, setDisabledIcon, setDisabledSelectedIcon, setEnabled, setFocusPainted, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setLabel, setMargin, setMnemonic, setMnemonic, setModel, setPressedIcon, setRolloverEnabled, setRolloverIcon, setRolloverSelectedIcon, setSelected, setSelectedIcon, setText, setUI, setVerticalAlignment, setVerticalTextPosition, updateUI
 
Methods inherited from class java.awt.swing.JComponent
 addAncestorListener, addNotify, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getGraphics, getHeight, getInsets, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getUIClassID, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, processComponentKeyEvent, processFocusEvent, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setAlignmentX, setAlignmentY, setAutoscrolls, setBorder, setBounds, setDebugGraphicsOptions, setDoubleBuffered, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVisible, unregisterKeyboardAction, update, updateUI
 
Methods inherited from class java.awt.Container
 add, add, add, add, add, addContainerListener, addImpl, addNotify, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, layout, list, list, locate, minimumSize, paint, paintComponents, paramString, preferredSize, print, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, removeNotify, setLayout, update, validate, validateTree
 
Methods inherited from class java.awt.Component
 action, add, addComponentListener, addFocusListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, deliverEvent, disable, disableEvents, dispatchEvent, doLayout, enable, enable, enableEvents, enableInputMethods, firePropertyChange, getAlignmentX, getAlignmentY, getBackground, getBounds, getColorModel, getComponentAt, getComponentAt, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocationOnScreen, getMaximumSize, getMinimumSize, getName, getParent, getPeer, getPreferredSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, invalidate, isDisplayable, isEnabled, isFocusTraversable, isLightweight, isOpaque, isShowing, isValid, isVisible, keyDown, keyUp, layout, list, list, list, list, list, locate, location, lostFocus, minimumSize, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paint, paintAll, paramString, postEvent, preferredSize, prepareImage, prepareImage, print, printAll, processComponentEvent, processEvent, processFocusEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, remove, removeComponentListener, removeFocusListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, reshape, resize, resize, setBackground, setBounds, setBounds, setCursor, setDropTarget, setEnabled, setFont, setForeground, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, show, size, toString, transferFocus, update, validate
 
Methods inherited from class java.lang.Object
 clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

popupListener

protected JMenu.WinListener popupListener
The window-closing listener for the popup.
See Also:
WinListener
Constructor Detail

JMenu

public JMenu()
Creates a new JMenu with no text.

JMenu

public JMenu(String s)
Creates a new JMenu with the supplied string as its text
Parameters:
s - The text for the menu label

JMenu

public JMenu(String s,
             boolean b)
Creates a new JMenu with the supplied string as its text and specified as a tear-off menu or not.
Parameters:
s - The text for the menu label
b - can the menu be torn off (not yet implemented)
Method Detail

setUI

public void setUI(java.awt.swing.plaf.MenuUI ui)
Sets the L&F object that renders this component.
Parameters:
ui - the new MenuUI
See Also:
getUI

updateUI

public void updateUI()
Notification from the UIFactory that the L&F has changed. Called to replace the UI with the latest version from the UIFactory.
Overrides:
updateUI in class JMenuItem
See Also:
updateUI

getUIClassID

public String getUIClassID()
Returns the name of the L&F class that renders this component.
Returns:
"MenuUI"
Overrides:
getUIClassID in class JMenuItem
See Also:
getUIClassID, getUI

setModel

public void setModel(ButtonModel newModel)
Set the data model for the "menu button" -- the label that the user clicks to open or close the menu.
Parameters:
m - the ButtonModel
Overrides:
setModel in class AbstractButton
See Also:
getModel

isSelected

public boolean isSelected()
Returns true if the menu is currently selected (popped up).
Returns:
true if the menu is open, else false
Overrides:
isSelected in class AbstractButton

setSelected

public void setSelected(boolean b)
Sets the selection status of the menu.
Parameters:
b - a boolean value -- true to select the menu and open it, false to unselect the menu and close it
Overrides:
setSelected in class AbstractButton

isPopupMenuVisible

public boolean isPopupMenuVisible()
Returns true if the menu's popup window is visible.
Returns:
true if the menu is visible, else false

setPopupMenuVisible

public void setPopupMenuVisible(boolean b)
Set the visibility of the Menu's popup portion. The popup may only be made visible if the menu is itself showing on the screen.
Parameters:
b - a boolean value -- true to make the menu visible, false to hide it

getDelay

public int getDelay()
Returns the suggested delay before the menu's PopupMenu is popped up or down.
Returns:
an int -- the number of milliseconds to delay

setDelay

public void setDelay(int d)
Sets the suggested delay before the menu's PopupMenu is popped up or down.
Parameters:
d - the number of milliseconds to delay
Throws:
IllegalArgumentException - if the value of d is less than 0.

setMenuLocation

public void setMenuLocation(int x,
                            int y)
Set the location of the popup component
Parameters:
x - the x coordinate of the popup's new position
y - the y coordinate of the popup's new position

add

public JMenuItem add(JMenuItem menuItem)
Appends a menuitem to the end of this menu. Returns the menuitem added.
Parameters:
menuItem - the JMenuitem to be added
Returns:
the JMenuItem added

add

public Component add(Component c)
Appends a component to the end of this menu. Returns the component added.
Parameters:
c - the Component to add
Returns:
the Component added
Overrides:
add in class Container

add

public void add(String s)
Creates a new menuitem with the specified text and appends it to the end of this menu.
Parameters:
s - the string for the menuitem to be added

add

public JMenuItem add(Action a)
Creates a new menuitem attached to the specified Action object and appends it to the end of this menu.
Parameters:
a - the Action for the menuitem to be added
See Also:
Action

createActionChangeListener

protected PropertyChangeListener createActionChangeListener(JMenuItem b)

addSeparator

public void addSeparator()
Append a new separator to the end of the menu.

insert

public void insert(String s,
                   int pos)
Insert a new menuitem with the specified text at a given position.
Parameters:
s - the text for the menuitem to add
pos - an int giving the position at which to add the new menuitem

insert

public JMenuItem insert(JMenuItem mi,
                        int pos)
Insert the specified JMenuitem at a given position.
Parameters:
mi - the JMenuitem to add
pos - an int giving the position at which to add the new JMenuitem

insert

public JMenuItem insert(Action a,
                        int pos)
Insert a new menuitem attached to the specified Action object at a given position.
Parameters:
a - the Action object for the menuitem to add
pos - an int giving the position at which to add the new menuitem

insertSeparator

public void insertSeparator(int index)
Inserts a separator at the specified position.
Parameters:
index - an int giving the position at which to insert the menu separator
Throws:
IllegalArgumentException - if the value of index is less than 0.

getItem

public JMenuItem getItem(int pos)
Returns the JMenuItem at the specified position. If the specified position contains a separator, this JMenu is returned.
Parameters:
pos - an int giving the position
Throws:
IllegalArgumentException - if the value of index is less than 0.

getItemCount

public int getItemCount()
Returns the number of items on the menu, including separators. This method is included for AWT compatibility.
Returns:
an int equal to the number of items on the menu
See Also:
getMenuComponentCount

isTearOff

public boolean isTearOff()
Returns true if the menu can be torn off.
Returns:
true if the menu can be torn off, else false

remove

public void remove(JMenuItem item)
Removes the specified menu item from this menu.
Parameters:
item - the JMenuItem to be removed from the menu

remove

public void remove(int pos)
Removes the menu item at the specified index from this menu.
Parameters:
index - the position of the item to be removed.
Throws:
IllegalArgumentException - if the value of index is less than 0.
Overrides:
remove in class Container

removeAll

public void removeAll()
Remove all menu items from this menu.
Overrides:
removeAll in class Container

getMenuComponentCount

public int getMenuComponentCount()
Returns the number of components on the menu.
Returns:
an int -- the number of components on the menu

getMenuComponent

public Component getMenuComponent(int n)
Returns the component at position n
Parameters:
n - the position of the component to be returned

getMenuComponents

public Component[] getMenuComponents()
Returns an array of the menu's subcomponents
Returns:
an array of Components

paramString

public String paramString()
Gets the parameter string representing the state of this menu. This string is useful for debugging.
Returns:
a String containing the menu parameters
Overrides:
paramString in class Container

isTopLevelMenu

public boolean isTopLevelMenu()
Returns true if the menu is a 'top-level menu', that is, if it is the direct child of a menubar.
Returns:
true if the menu is activated from the menu bar, false if the menu is activated from a menu item on another menu

isMenuComponent

public boolean isMenuComponent(Component c)
Returns true if the specified component exists in the submenu hierarchy.
Parameters:
c - the Component to be tested
Returns:
true if the component exists

getPopupMenu

public JPopupMenu getPopupMenu()
Returns the popupmenu associated with this menu

addMenuListener

public void addMenuListener(MenuListener l)
Add a listener for menu events
Parameters:
l - the listener to be added

removeMenuListener

public void removeMenuListener(MenuListener l)
Remove a listener for menu events
Parameters:
l - the listener to be removed

fireMenuSelected

protected void fireMenuSelected()
Notify all listeners that have registered interest for notification on this event type. The event instance is lazily created using the parameters passed into the fire method.
See Also:
EventListenerList

fireMenuDeselected

protected void fireMenuDeselected()
Notify all listeners that have registered interest for notification on this event type. The event instance is lazily created using the parameters passed into the fire method.
See Also:
EventListenerList

createWinListener

protected JMenu.WinListener createWinListener(JPopupMenu p)
Create a window-closing listener for the popup.
Parameters:
p - the JPopupMenu
See Also:
WinListener

processMouseEvent

public void processMouseEvent(MouseEvent event,
                              MenuElement[] path,
                              MenuSelectionManager manager)
Process a mouse event. event is a MouseEvent with source being the receiving component. componentPath is the path of the receiving MenuComponent in the menu hierarchy. 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
Implements:
processMouseEvent in interface MenuElement
Overrides:
processMouseEvent in class JMenuItem

processKeyEvent

public void processKeyEvent(KeyEvent e,
                            MenuElement[] path,
                            MenuSelectionManager manager)
Implemented to be a MenuElement. This message is forwarded to the UI
Implements:
processKeyEvent in interface MenuElement
Overrides:
processKeyEvent in class JMenuItem

menuSelectionChanged

public void menuSelectionChanged(boolean isIncluded)
Implements:
menuSelectionChanged in interface MenuElement
Overrides:
menuSelectionChanged in class JMenuItem

getSubElements

public MenuElement[] getSubElements()
This method should return an array containing the sub-menu components for this menu component
Implements:
getSubElements in interface MenuElement
Overrides:
getSubElements in class JMenuItem

getComponent

public Component getComponent()
Implements:
getComponent in interface MenuElement
Overrides:
getComponent in class JMenuItem

setAccelerator

public void setAccelerator(KeyStroke keyStroke)
Overrides:
setAccelerator in class JMenuItem

processKeyEvent

protected void processKeyEvent(KeyEvent e)
Implements:
processKeyEvent in interface MenuElement
Overrides:
processKeyEvent in class JComponent

getAccessibleContext

public AccessibleContext getAccessibleContext()
Get the AccessibleContext associated with this JComponent
Implements:
getAccessibleContext in interface Accessible
Returns:
the AccessibleContext of this JComponent
Overrides:
getAccessibleContext in class JMenuItem

Contents | Package | Class | Tree | Deprecated | Index | Help Java 1.2 Beta 3
PREV | NEXT SHOW LISTS | HIDE LISTS

Submit a bug or feature
Submit comments/suggestions about new javadoc look.
Java is a trademark or registered trademark of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. All Rights Reserved.