< prev index next >
src/java.desktop/share/classes/java/awt/MenuItem.java
Print this page
*** 33,70 ****
import javax.accessibility.*;
import sun.awt.AWTAccessor;
/**
* All items in a menu must belong to the class
! * <code>MenuItem</code>, or one of its subclasses.
* <p>
! * The default <code>MenuItem</code> object embodies
* a simple labeled menu item.
* <p>
* This picture of a menu bar shows five menu items:
* <IMG SRC="doc-files/MenuBar-1.gif" alt="The following text describes this graphic."
* style="float:center; margin: 7px 10px;">
* <br style="clear:left;">
* The first two items are simple menu items, labeled
! * <code>"Basic"</code> and <code>"Simple"</code>.
* Following these two items is a separator, which is itself
! * a menu item, created with the label <code>"-"</code>.
! * Next is an instance of <code>CheckboxMenuItem</code>
! * labeled <code>"Check"</code>. The final menu item is a
* submenu labeled <code>"More Examples"</code>,
! * and this submenu is an instance of <code>Menu</code>.
* <p>
* When a menu item is selected, AWT sends an action event to
* the menu item. Since the event is an
! * instance of <code>ActionEvent</code>, the <code>processEvent</code>
* method examines the event and passes it along to
! * <code>processActionEvent</code>. The latter method redirects the
! * event to any <code>ActionListener</code> objects that have
* registered an interest in action events generated by this
* menu item.
* <P>
! * Note that the subclass <code>Menu</code> overrides this behavior and
* does not send any event to the frame until one of its subitems is
* selected.
*
* @author Sami Shaio
*/
--- 33,70 ----
import javax.accessibility.*;
import sun.awt.AWTAccessor;
/**
* All items in a menu must belong to the class
! * {@code MenuItem}, or one of its subclasses.
* <p>
! * The default {@code MenuItem} object embodies
* a simple labeled menu item.
* <p>
* This picture of a menu bar shows five menu items:
* <IMG SRC="doc-files/MenuBar-1.gif" alt="The following text describes this graphic."
* style="float:center; margin: 7px 10px;">
* <br style="clear:left;">
* The first two items are simple menu items, labeled
! * {@code "Basic"} and {@code "Simple"}.
* Following these two items is a separator, which is itself
! * a menu item, created with the label {@code "-"}.
! * Next is an instance of {@code CheckboxMenuItem}
! * labeled {@code "Check"}. The final menu item is a
* submenu labeled <code>"More Examples"</code>,
! * and this submenu is an instance of {@code Menu}.
* <p>
* When a menu item is selected, AWT sends an action event to
* the menu item. Since the event is an
! * instance of {@code ActionEvent}, the {@code processEvent}
* method examines the event and passes it along to
! * {@code processActionEvent}. The latter method redirects the
! * event to any {@code ActionListener} objects that have
* registered an interest in action events generated by this
* menu item.
* <P>
! * Note that the subclass {@code Menu} overrides this behavior and
* does not send any event to the frame until one of its subitems is
* selected.
*
* @author Sami Shaio
*/
*** 101,122 ****
});
}
/**
* A value to indicate whether a menu item is enabled
! * or not. If it is enabled, <code>enabled</code> will
! * be set to true. Else <code>enabled</code> will
* be set to false.
*
* @serial
* @see #isEnabled()
* @see #setEnabled(boolean)
*/
boolean enabled = true;
/**
! * <code>label</code> is the label of a menu item.
* It can be any string.
*
* @serial
* @see #getLabel()
* @see #setLabel(String)
--- 101,122 ----
});
}
/**
* A value to indicate whether a menu item is enabled
! * or not. If it is enabled, {@code enabled} will
! * be set to true. Else {@code enabled} will
* be set to false.
*
* @serial
* @see #isEnabled()
* @see #setEnabled(boolean)
*/
boolean enabled = true;
/**
! * {@code label} is the label of a menu item.
* It can be any string.
*
* @serial
* @see #getLabel()
* @see #setLabel(String)
*** 124,134 ****
String label;
/**
* This field indicates the command tha has been issued
* by a particular menu item.
! * By default the <code>actionCommand</code>
* is the label of the menu item, unless it has been
* set using setActionCommand.
*
* @serial
* @see #setActionCommand(String)
--- 124,134 ----
String label;
/**
* This field indicates the command tha has been issued
* by a particular menu item.
! * By default the {@code actionCommand}
* is the label of the menu item, unless it has been
* set using setActionCommand.
*
* @serial
* @see #setActionCommand(String)
*** 202,212 ****
* Create a menu item with an associated keyboard shortcut.
* Note that use of "-" in a label is reserved to indicate
* a separator between menu items. By default, all menu
* items except for separators are enabled.
* @param label the label for this menu item.
! * @param s the instance of <code>MenuShortcut</code>
* associated with this menu item.
* @exception HeadlessException if GraphicsEnvironment.isHeadless()
* returns true.
* @see java.awt.GraphicsEnvironment#isHeadless
* @since 1.1
--- 202,212 ----
* Create a menu item with an associated keyboard shortcut.
* Note that use of "-" in a label is reserved to indicate
* a separator between menu items. By default, all menu
* items except for separators are enabled.
* @param label the label for this menu item.
! * @param s the instance of {@code MenuShortcut}
* associated with this menu item.
* @exception HeadlessException if GraphicsEnvironment.isHeadless()
* returns true.
* @see java.awt.GraphicsEnvironment#isHeadless
* @since 1.1
*** 237,258 ****
}
}
/**
* Gets the label for this menu item.
! * @return the label of this menu item, or <code>null</code>
if this menu item has no label.
* @see java.awt.MenuItem#setLabel
* @since 1.0
*/
public String getLabel() {
return label;
}
/**
* Sets the label for this menu item to the specified label.
! * @param label the new label, or <code>null</code> for no label.
* @see java.awt.MenuItem#getLabel
* @since 1.0
*/
public synchronized void setLabel(String label) {
this.label = label;
--- 237,258 ----
}
}
/**
* Gets the label for this menu item.
! * @return the label of this menu item, or {@code null}
if this menu item has no label.
* @see java.awt.MenuItem#setLabel
* @since 1.0
*/
public String getLabel() {
return label;
}
/**
* Sets the label for this menu item to the specified label.
! * @param label the new label, or {@code null} for no label.
* @see java.awt.MenuItem#getLabel
* @since 1.0
*/
public synchronized void setLabel(String label) {
this.label = label;
*** 274,295 ****
return enabled;
}
/**
* Sets whether or not this menu item can be chosen.
! * @param b if <code>true</code>, enables this menu item;
! * if <code>false</code>, disables it.
* @see java.awt.MenuItem#isEnabled
* @since 1.1
*/
public synchronized void setEnabled(boolean b) {
enable(b);
}
/**
* @deprecated As of JDK version 1.1,
! * replaced by <code>setEnabled(boolean)</code>.
*/
@Deprecated
public synchronized void enable() {
enabled = true;
MenuItemPeer peer = (MenuItemPeer)this.peer;
--- 274,295 ----
return enabled;
}
/**
* Sets whether or not this menu item can be chosen.
! * @param b if {@code true}, enables this menu item;
! * if {@code false}, disables it.
* @see java.awt.MenuItem#isEnabled
* @since 1.1
*/
public synchronized void setEnabled(boolean b) {
enable(b);
}
/**
* @deprecated As of JDK version 1.1,
! * replaced by {@code setEnabled(boolean)}.
*/
@Deprecated
public synchronized void enable() {
enabled = true;
MenuItemPeer peer = (MenuItemPeer)this.peer;
*** 302,312 ****
* Sets whether or not this menu item can be chosen.
*
* @param b if {@code true}, enables this menu item;
* otherwise disables
* @deprecated As of JDK version 1.1,
! * replaced by <code>setEnabled(boolean)</code>.
*/
@Deprecated
public void enable(boolean b) {
if (b) {
enable();
--- 302,312 ----
* Sets whether or not this menu item can be chosen.
*
* @param b if {@code true}, enables this menu item;
* otherwise disables
* @deprecated As of JDK version 1.1,
! * replaced by {@code setEnabled(boolean)}.
*/
@Deprecated
public void enable(boolean b) {
if (b) {
enable();
*** 315,325 ****
}
}
/**
* @deprecated As of JDK version 1.1,
! * replaced by <code>setEnabled(boolean)</code>.
*/
@Deprecated
public synchronized void disable() {
enabled = false;
MenuItemPeer peer = (MenuItemPeer)this.peer;
--- 315,325 ----
}
}
/**
* @deprecated As of JDK version 1.1,
! * replaced by {@code setEnabled(boolean)}.
*/
@Deprecated
public synchronized void disable() {
enabled = false;
MenuItemPeer peer = (MenuItemPeer)this.peer;
*** 327,349 ****
peer.setEnabled(false);
}
}
/**
! * Get the <code>MenuShortcut</code> object associated with this
* menu item,
* @return the menu shortcut associated with this menu item,
! * or <code>null</code> if none has been specified.
* @see java.awt.MenuItem#setShortcut
* @since 1.1
*/
public MenuShortcut getShortcut() {
return shortcut;
}
/**
! * Set the <code>MenuShortcut</code> object associated with this
* menu item. If a menu shortcut is already associated with
* this menu item, it is replaced.
* @param s the menu shortcut to associate
* with this menu item.
* @see java.awt.MenuItem#getShortcut
--- 327,349 ----
peer.setEnabled(false);
}
}
/**
! * Get the {@code MenuShortcut} object associated with this
* menu item,
* @return the menu shortcut associated with this menu item,
! * or {@code null} if none has been specified.
* @see java.awt.MenuItem#setShortcut
* @since 1.1
*/
public MenuShortcut getShortcut() {
return shortcut;
}
/**
! * Set the {@code MenuShortcut} object associated with this
* menu item. If a menu shortcut is already associated with
* this menu item, it is replaced.
* @param s the menu shortcut to associate
* with this menu item.
* @see java.awt.MenuItem#getShortcut
*** 356,366 ****
peer.setLabel(label);
}
}
/**
! * Delete any <code>MenuShortcut</code> object associated
* with this menu item.
* @since 1.1
*/
public void deleteShortcut() {
shortcut = null;
--- 356,366 ----
peer.setLabel(label);
}
}
/**
! * Delete any {@code MenuShortcut} object associated
* with this menu item.
* @since 1.1
*/
public void deleteShortcut() {
shortcut = null;
*** 452,463 ****
* Enables event delivery to this menu item for events
* to be defined by the specified event mask parameter
* <p>
* Since event types are automatically enabled when a listener for
* that type is added to the menu item, this method only needs
! * to be invoked by subclasses of <code>MenuItem</code> which desire to
! * have the specified event types delivered to <code>processEvent</code>
* regardless of whether a listener is registered.
*
* @param eventsToEnable the event mask defining the event types
* @see java.awt.MenuItem#processEvent
* @see java.awt.MenuItem#disableEvents
--- 452,463 ----
* Enables event delivery to this menu item for events
* to be defined by the specified event mask parameter
* <p>
* Since event types are automatically enabled when a listener for
* that type is added to the menu item, this method only needs
! * to be invoked by subclasses of {@code MenuItem} which desire to
! * have the specified event types delivered to {@code processEvent}
* regardless of whether a listener is registered.
*
* @param eventsToEnable the event mask defining the event types
* @see java.awt.MenuItem#processEvent
* @see java.awt.MenuItem#disableEvents
*** 560,570 ****
/**
* Returns an array of all the action listeners
* registered on this menu item.
*
! * @return all of this menu item's <code>ActionListener</code>s
* or an empty array if no action
* listeners are currently registered
*
* @see #addActionListener
* @see #removeActionListener
--- 560,570 ----
/**
* Returns an array of all the action listeners
* registered on this menu item.
*
! * @return all of this menu item's {@code ActionListener}s
* or an empty array if no action
* listeners are currently registered
*
* @see #addActionListener
* @see #removeActionListener
*** 577,613 ****
}
/**
* Returns an array of all the objects currently registered
* as <code><em>Foo</em>Listener</code>s
! * upon this <code>MenuItem</code>.
* <code><em>Foo</em>Listener</code>s are registered using the
* <code>add<em>Foo</em>Listener</code> method.
*
* <p>
! * You can specify the <code>listenerType</code> argument
* with a class literal, such as
* <code><em>Foo</em>Listener.class</code>.
* For example, you can query a
! * <code>MenuItem</code> <code>m</code>
* for its action listeners with the following code:
*
* <pre>ActionListener[] als = (ActionListener[])(m.getListeners(ActionListener.class));</pre>
*
* If no such listeners exist, this method returns an empty array.
*
* @param <T> the type of the listeners
* @param listenerType the type of listeners requested; this parameter
* should specify an interface that descends from
! * <code>java.util.EventListener</code>
* @return an array of all objects registered as
* <code><em>Foo</em>Listener</code>s on this menu item,
* or an empty array if no such
* listeners have been added
! * @exception ClassCastException if <code>listenerType</code>
* doesn't specify a class or interface that implements
! * <code>java.util.EventListener</code>
*
* @see #getActionListeners
* @since 1.3
*/
public <T extends EventListener> T[] getListeners(Class<T> listenerType) {
--- 577,613 ----
}
/**
* Returns an array of all the objects currently registered
* as <code><em>Foo</em>Listener</code>s
! * upon this {@code MenuItem}.
* <code><em>Foo</em>Listener</code>s are registered using the
* <code>add<em>Foo</em>Listener</code> method.
*
* <p>
! * You can specify the {@code listenerType} argument
* with a class literal, such as
* <code><em>Foo</em>Listener.class</code>.
* For example, you can query a
! * {@code MenuItem m}
* for its action listeners with the following code:
*
* <pre>ActionListener[] als = (ActionListener[])(m.getListeners(ActionListener.class));</pre>
*
* If no such listeners exist, this method returns an empty array.
*
* @param <T> the type of the listeners
* @param listenerType the type of listeners requested; this parameter
* should specify an interface that descends from
! * {@code java.util.EventListener}
* @return an array of all objects registered as
* <code><em>Foo</em>Listener</code>s on this menu item,
* or an empty array if no such
* listeners have been added
! * @exception ClassCastException if {@code listenerType}
* doesn't specify a class or interface that implements
! * {@code java.util.EventListener}
*
* @see #getActionListeners
* @since 1.3
*/
public <T extends EventListener> T[] getListeners(Class<T> listenerType) {
*** 618,633 ****
return AWTEventMulticaster.getListeners(l, listenerType);
}
/**
* Processes events on this menu item. If the event is an
! * instance of <code>ActionEvent</code>, it invokes
! * <code>processActionEvent</code>, another method
! * defined by <code>MenuItem</code>.
* <p>
* Currently, menu items only support action events.
! * <p>Note that if the event parameter is <code>null</code>
* the behavior is unspecified and may result in an
* exception.
*
* @param e the event
* @see java.awt.MenuItem#processActionEvent
--- 618,633 ----
return AWTEventMulticaster.getListeners(l, listenerType);
}
/**
* Processes events on this menu item. If the event is an
! * instance of {@code ActionEvent}, it invokes
! * {@code processActionEvent}, another method
! * defined by {@code MenuItem}.
* <p>
* Currently, menu items only support action events.
! * <p>Note that if the event parameter is {@code null}
* the behavior is unspecified and may result in an
* exception.
*
* @param e the event
* @see java.awt.MenuItem#processActionEvent
*** 652,671 ****
}
/**
* Processes action events occurring on this menu item,
* by dispatching them to any registered
! * <code>ActionListener</code> objects.
* This method is not called unless action events are
* enabled for this component. Action events are enabled
* when one of the following occurs:
* <ul>
! * <li>An <code>ActionListener</code> object is registered
! * via <code>addActionListener</code>.
! * <li>Action events are enabled via <code>enableEvents</code>.
* </ul>
! * <p>Note that if the event parameter is <code>null</code>
* the behavior is unspecified and may result in an
* exception.
*
* @param e the action event
* @see java.awt.event.ActionEvent
--- 652,671 ----
}
/**
* Processes action events occurring on this menu item,
* by dispatching them to any registered
! * {@code ActionListener} objects.
* This method is not called unless action events are
* enabled for this component. Action events are enabled
* when one of the following occurs:
* <ul>
! * <li>An {@code ActionListener} object is registered
! * via {@code addActionListener}.
! * <li>Action events are enabled via {@code enableEvents}.
* </ul>
! * <p>Note that if the event parameter is {@code null}
* the behavior is unspecified and may result in an
* exception.
*
* @param e the action event
* @see java.awt.event.ActionEvent
*** 679,693 ****
listener.actionPerformed(e);
}
}
/**
! * Returns a string representing the state of this <code>MenuItem</code>.
* This method is intended to be used only for debugging purposes, and the
* content and format of the returned string may vary between
* implementations. The returned string may be empty but may not be
! * <code>null</code>.
*
* @return the parameter string of this menu item
*/
public String paramString() {
String str = ",label=" + label;
--- 679,693 ----
listener.actionPerformed(e);
}
}
/**
! * Returns a string representing the state of this {@code MenuItem}.
* This method is intended to be used only for debugging purposes, and the
* content and format of the returned string may vary between
* implementations. The returned string may be empty but may not be
! * {@code null}.
*
* @return the parameter string of this menu item
*/
public String paramString() {
String str = ",label=" + label;
*** 708,728 ****
*/
private int menuItemSerializedDataVersion = 1;
/**
* Writes default serializable fields to stream. Writes
! * a list of serializable <code>ActionListeners</code>
* as optional data. The non-serializable listeners are
* detected and no attempt is made to serialize them.
*
! * @param s the <code>ObjectOutputStream</code> to write
! * @serialData <code>null</code> terminated sequence of 0
! * or more pairs; the pair consists of a <code>String</code>
! * and an <code>Object</code>; the <code>String</code>
* indicates the type of object and is one of the following:
! * <code>actionListenerK</code> indicating an
! * <code>ActionListener</code> object
*
* @see AWTEventMulticaster#save(ObjectOutputStream, String, EventListener)
* @see #readObject(ObjectInputStream)
*/
private void writeObject(ObjectOutputStream s)
--- 708,728 ----
*/
private int menuItemSerializedDataVersion = 1;
/**
* Writes default serializable fields to stream. Writes
! * a list of serializable {@code ActionListeners}
* as optional data. The non-serializable listeners are
* detected and no attempt is made to serialize them.
*
! * @param s the {@code ObjectOutputStream} to write
! * @serialData {@code null} terminated sequence of 0
! * or more pairs; the pair consists of a {@code String}
! * and an {@code Object}; the {@code String}
* indicates the type of object and is one of the following:
! * {@code actionListenerK} indicating an
! * {@code ActionListener} object
*
* @see AWTEventMulticaster#save(ObjectOutputStream, String, EventListener)
* @see #readObject(ObjectInputStream)
*/
private void writeObject(ObjectOutputStream s)
*** 733,751 ****
AWTEventMulticaster.save(s, actionListenerK, actionListener);
s.writeObject(null);
}
/**
! * Reads the <code>ObjectInputStream</code> and if it
! * isn't <code>null</code> adds a listener to receive
! * action events fired by the <code>Menu</code> Item.
* Unrecognized keys or values will be ignored.
*
! * @param s the <code>ObjectInputStream</code> to read
* @exception HeadlessException if
! * <code>GraphicsEnvironment.isHeadless</code> returns
! * <code>true</code>
* @see #removeActionListener(ActionListener)
* @see #addActionListener(ActionListener)
* @see #writeObject(ObjectOutputStream)
*/
private void readObject(ObjectInputStream s)
--- 733,751 ----
AWTEventMulticaster.save(s, actionListenerK, actionListener);
s.writeObject(null);
}
/**
! * Reads the {@code ObjectInputStream} and if it
! * isn't {@code null} adds a listener to receive
! * action events fired by the {@code Menu} Item.
* Unrecognized keys or values will be ignored.
*
! * @param s the {@code ObjectInputStream} to read
* @exception HeadlessException if
! * {@code GraphicsEnvironment.isHeadless} returns
! * {@code true}
* @see #removeActionListener(ActionListener)
* @see #addActionListener(ActionListener)
* @see #writeObject(ObjectOutputStream)
*/
private void readObject(ObjectInputStream s)
*** 798,808 ****
* accessibility. This class is not meant to be used directly by
* application developers, but is instead meant only to be
* subclassed by menu component developers.
* <p>
* This class implements accessibility support for the
! * <code>MenuItem</code> class. It provides an implementation of the
* Java Accessibility API appropriate to menu item user-interface elements.
* @since 1.3
*/
protected class AccessibleAWTMenuItem extends AccessibleAWTMenuComponent
implements AccessibleAction, AccessibleValue
--- 798,808 ----
* accessibility. This class is not meant to be used directly by
* application developers, but is instead meant only to be
* subclassed by menu component developers.
* <p>
* This class implements accessibility support for the
! * {@code MenuItem} class. It provides an implementation of the
* Java Accessibility API appropriate to menu item user-interface elements.
* @since 1.3
*/
protected class AccessibleAWTMenuItem extends AccessibleAWTMenuComponent
implements AccessibleAction, AccessibleValue
< prev index next >