< prev index next >
src/java.desktop/share/classes/java/awt/Button.java
Print this page
*** 34,44 ****
import javax.accessibility.*;
/**
* This class creates a labeled button. The application can cause
* some action to happen when the button is pushed. This image
! * depicts three views of a "<code>Quit</code>" button as it appears
* under the Solaris operating system:
* <p>
* <img src="doc-files/Button-1.gif" alt="The following context describes the graphic"
* style="float:center; margin: 7px 10px;">
* <p>
--- 34,44 ----
import javax.accessibility.*;
/**
* This class creates a labeled button. The application can cause
* some action to happen when the button is pushed. This image
! * depicts three views of a "{@code Quit}" button as it appears
* under the Solaris operating system:
* <p>
* <img src="doc-files/Button-1.gif" alt="The following context describes the graphic"
* style="float:center; margin: 7px 10px;">
* <p>
*** 48,82 ****
* user know that it is an active object. The third view shows the
* button when the user clicks the mouse over the button, and thus
* requests that an action be performed.
* <p>
* The gesture of clicking on a button with the mouse
! * is associated with one instance of <code>ActionEvent</code>,
* which is sent out when the mouse is both pressed and released
* over the button. If an application is interested in knowing
* when the button has been pressed but not released, as a separate
! * gesture, it can specialize <code>processMouseEvent</code>,
* or it can register itself as a listener for mouse events by
! * calling <code>addMouseListener</code>. Both of these methods are
! * defined by <code>Component</code>, the abstract superclass of
* all components.
* <p>
* When a button is pressed and released, AWT sends an instance
! * of <code>ActionEvent</code> to the button, by calling
! * <code>processEvent</code> on the button. The button's
! * <code>processEvent</code> method receives all events
* for the button; it passes an action event along by
! * calling its own <code>processActionEvent</code> method.
* The latter method passes the action event on to any action
* listeners that have registered an interest in action
* events generated by this button.
* <p>
* If an application wants to perform some action based on
* a button being pressed and released, it should implement
! * <code>ActionListener</code> and register the new listener
* to receive events from this button, by calling the button's
! * <code>addActionListener</code> method. The application can
* make use of the button's action command as a messaging protocol.
*
* @author Sami Shaio
* @see java.awt.event.ActionEvent
* @see java.awt.event.ActionListener
--- 48,82 ----
* user know that it is an active object. The third view shows the
* button when the user clicks the mouse over the button, and thus
* requests that an action be performed.
* <p>
* The gesture of clicking on a button with the mouse
! * is associated with one instance of {@code ActionEvent},
* which is sent out when the mouse is both pressed and released
* over the button. If an application is interested in knowing
* when the button has been pressed but not released, as a separate
! * gesture, it can specialize {@code processMouseEvent},
* or it can register itself as a listener for mouse events by
! * calling {@code addMouseListener}. Both of these methods are
! * defined by {@code Component}, the abstract superclass of
* all components.
* <p>
* When a button is pressed and released, AWT sends an instance
! * of {@code ActionEvent} to the button, by calling
! * {@code processEvent} on the button. The button's
! * {@code processEvent} method receives all events
* for the button; it passes an action event along by
! * calling its own {@code processActionEvent} method.
* The latter method passes the action event on to any action
* listeners that have registered an interest in action
* events generated by this button.
* <p>
* If an application wants to perform some action based on
* a button being pressed and released, it should implement
! * {@code ActionListener} and register the new listener
* to receive events from this button, by calling the button's
! * {@code addActionListener} method. The application can
* make use of the button's action command as a messaging protocol.
*
* @author Sami Shaio
* @see java.awt.event.ActionEvent
* @see java.awt.event.ActionListener
*** 141,151 ****
/**
* Constructs a button with the specified label.
*
* @param label a string label for the button, or
! * <code>null</code> for no label
* @exception HeadlessException if GraphicsEnvironment.isHeadless()
* returns true
* @see java.awt.GraphicsEnvironment#isHeadless
*/
public Button(String label) throws HeadlessException {
--- 141,151 ----
/**
* Constructs a button with the specified label.
*
* @param label a string label for the button, or
! * {@code null} for no label
* @exception HeadlessException if GraphicsEnvironment.isHeadless()
* returns true
* @see java.awt.GraphicsEnvironment#isHeadless
*/
public Button(String label) throws HeadlessException {
*** 179,200 ****
}
/**
* Gets the label of this button.
*
! * @return the button's label, or <code>null</code>
* if the button has no label.
* @see java.awt.Button#setLabel
*/
public String getLabel() {
return label;
}
/**
* Sets the button's label to be the specified string.
*
! * @param label the new label, or <code>null</code>
* if the button has no label.
* @see java.awt.Button#getLabel
*/
public void setLabel(String label) {
boolean testvalid = false;
--- 179,200 ----
}
/**
* Gets the label of this button.
*
! * @return the button's label, or {@code null}
* if the button has no label.
* @see java.awt.Button#setLabel
*/
public String getLabel() {
return label;
}
/**
* Sets the button's label to be the specified string.
*
! * @param label the new label, or {@code null}
* if the button has no label.
* @see java.awt.Button#getLabel
*/
public void setLabel(String label) {
boolean testvalid = false;
*** 222,243 ****
* by this button. By default this action command is
* set to match the label of the button.
*
* @param command a string used to set the button's
* action command.
! * If the string is <code>null</code> then the action command
* is set to match the label of the button.
* @see java.awt.event.ActionEvent
* @since 1.1
*/
public void setActionCommand(String command) {
actionCommand = command;
}
/**
* Returns the command name of the action event fired by this button.
! * If the command name is <code>null</code> (default) then this method
* returns the label of the button.
*
* @return the action command name (or label) for this button
*/
public String getActionCommand() {
--- 222,243 ----
* by this button. By default this action command is
* set to match the label of the button.
*
* @param command a string used to set the button's
* action command.
! * If the string is {@code null} then the action command
* is set to match the label of the button.
* @see java.awt.event.ActionEvent
* @since 1.1
*/
public void setActionCommand(String command) {
actionCommand = command;
}
/**
* Returns the command name of the action event fired by this button.
! * If the command name is {@code null} (default) then this method
* returns the label of the button.
*
* @return the action command name (or label) for this button
*/
public String getActionCommand() {
*** 289,299 ****
/**
* Returns an array of all the action listeners
* registered on this button.
*
! * @return all of this button's <code>ActionListener</code>s
* or an empty array if no action
* listeners are currently registered
*
* @see #addActionListener
* @see #removeActionListener
--- 289,299 ----
/**
* Returns an array of all the action listeners
* registered on this button.
*
! * @return all of this button's {@code ActionListener}s
* or an empty array if no action
* listeners are currently registered
*
* @see #addActionListener
* @see #removeActionListener
*** 305,340 ****
}
/**
* Returns an array of all the objects currently registered
* as <code><em>Foo</em>Listener</code>s
! * upon this <code>Button</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>Button</code> <code>b</code>
* for its action listeners with the following code:
*
* <pre>ActionListener[] als = (ActionListener[])(b.getListeners(ActionListener.class));</pre>
*
* If no such listeners exist, this method returns an empty array.
*
* @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 button,
* 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) {
--- 305,340 ----
}
/**
* Returns an array of all the objects currently registered
* as <code><em>Foo</em>Listener</code>s
! * upon this {@code Button}.
* <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 Button b}
* for its action listeners with the following code:
*
* <pre>ActionListener[] als = (ActionListener[])(b.getListeners(ActionListener.class));</pre>
*
* If no such listeners exist, this method returns an empty array.
*
* @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 button,
* 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) {
*** 359,372 ****
return super.eventEnabled(e);
}
/**
* Processes events on this button. If an event is
! * an instance of <code>ActionEvent</code>, this method invokes
! * the <code>processActionEvent</code> method. Otherwise,
! * it invokes <code>processEvent</code> on the superclass.
! * <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.event.ActionEvent
--- 359,372 ----
return super.eventEnabled(e);
}
/**
* Processes events on this button. If an event is
! * an instance of {@code ActionEvent}, this method invokes
! * the {@code processActionEvent} method. Otherwise,
! * it invokes {@code processEvent} on the superclass.
! * <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.event.ActionEvent
*** 382,402 ****
}
/**
* Processes action events occurring on this button
* by dispatching them to any registered
! * <code>ActionListener</code> objects.
* <p>
* This method is not called unless action events are
* enabled for this button. 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.ActionListener
--- 382,402 ----
}
/**
* Processes action events occurring on this button
* by dispatching them to any registered
! * {@code ActionListener} objects.
* <p>
* This method is not called unless action events are
* enabled for this button. 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.ActionListener
*** 410,424 ****
listener.actionPerformed(e);
}
}
/**
! * Returns a string representing the state of this <code>Button</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 button
*/
protected String paramString() {
return super.paramString() + ",label=" + label;
--- 410,424 ----
listener.actionPerformed(e);
}
}
/**
! * Returns a string representing the state of this {@code Button}.
* 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 button
*/
protected String paramString() {
return super.paramString() + ",label=" + label;
*** 434,456 ****
*/
private int buttonSerializedDataVersion = 1;
/**
* Writes default serializable fields to stream. Writes
! * a list of serializable <code>ActionListeners</code>
* as optional data. The non-serializable
! * <code>ActionListeners</code> are detected and
* no attempt is made to serialize them.
*
! * @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
*
! * @param s the <code>ObjectOutputStream</code> to write
* @see AWTEventMulticaster#save(ObjectOutputStream, String, EventListener)
* @see java.awt.Component#actionListenerK
* @see #readObject(ObjectInputStream)
*/
private void writeObject(ObjectOutputStream s)
--- 434,456 ----
*/
private int buttonSerializedDataVersion = 1;
/**
* Writes default serializable fields to stream. Writes
! * a list of serializable {@code ActionListeners}
* as optional data. The non-serializable
! * {@code ActionListeners} are detected and
* no attempt is made to serialize them.
*
! * @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
*
! * @param s the {@code ObjectOutputStream} to write
* @see AWTEventMulticaster#save(ObjectOutputStream, String, EventListener)
* @see java.awt.Component#actionListenerK
* @see #readObject(ObjectInputStream)
*/
private void writeObject(ObjectOutputStream s)
*** 461,479 ****
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 button.
* 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>
* @serial
* @see #removeActionListener(ActionListener)
* @see #addActionListener(ActionListener)
* @see java.awt.GraphicsEnvironment#isHeadless
* @see #writeObject(ObjectOutputStream)
--- 461,479 ----
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 button.
* Unrecognized keys or values will be ignored.
*
! * @param s the {@code ObjectInputStream} to read
* @exception HeadlessException if
! * {@code GraphicsEnvironment.isHeadless} returns
! * {@code true}
* @serial
* @see #removeActionListener(ActionListener)
* @see #addActionListener(ActionListener)
* @see java.awt.GraphicsEnvironment#isHeadless
* @see #writeObject(ObjectOutputStream)
*** 500,518 ****
/////////////////
// Accessibility support
////////////////
/**
! * Gets the <code>AccessibleContext</code> associated with
! * this <code>Button</code>. For buttons, the
! * <code>AccessibleContext</code> takes the form of an
! * <code>AccessibleAWTButton</code>.
! * A new <code>AccessibleAWTButton</code> instance is
* created if necessary.
*
! * @return an <code>AccessibleAWTButton</code> that serves as the
! * <code>AccessibleContext</code> of this <code>Button</code>
* @beaninfo
* expert: true
* description: The AccessibleContext associated with this Button.
* @since 1.3
*/
--- 500,518 ----
/////////////////
// Accessibility support
////////////////
/**
! * Gets the {@code AccessibleContext} associated with
! * this {@code Button}. For buttons, the
! * {@code AccessibleContext} takes the form of an
! * {@code AccessibleAWTButton}.
! * A new {@code AccessibleAWTButton} instance is
* created if necessary.
*
! * @return an {@code AccessibleAWTButton} that serves as the
! * {@code AccessibleContext} of this {@code Button}
* @beaninfo
* expert: true
* description: The AccessibleContext associated with this Button.
* @since 1.3
*/
*** 523,533 ****
return accessibleContext;
}
/**
* This class implements accessibility support for the
! * <code>Button</code> class. It provides an implementation of the
* Java Accessibility API appropriate to button user-interface elements.
* @since 1.3
*/
protected class AccessibleAWTButton extends AccessibleAWTComponent
implements AccessibleAction, AccessibleValue
--- 523,533 ----
return accessibleContext;
}
/**
* This class implements accessibility support for the
! * {@code Button} class. It provides an implementation of the
* Java Accessibility API appropriate to button user-interface elements.
* @since 1.3
*/
protected class AccessibleAWTButton extends AccessibleAWTComponent
implements AccessibleAction, AccessibleValue
< prev index next >