FileDocCategorySizeDatePackage
Button.javaAPI DocJava SE 5 API21597Fri Aug 26 14:56:44 BST 2005java.awt

Button

public class Button extends Component implements Accessible
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 "Quit" button as it appears under the Solaris operating system:

The following context describes the graphic

The first view shows the button as it appears normally. The second view shows the button when it has input focus. Its outline is darkened to let the 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.

The gesture of clicking on a button with the mouse is associated with one instance of 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 processMouseEvent, or it can register itself as a listener for mouse events by calling addMouseListener. Both of these methods are defined by Component, the abstract superclass of all components.

When a button is pressed and released, AWT sends an instance of ActionEvent to the button, by calling processEvent on the button. The button's processEvent method receives all events for the button; it passes an action event along by calling its own 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.

If an application wants to perform some action based on a button being pressed and released, it should implement ActionListener and register the new listener to receive events from this button, by calling the button's addActionListener method. The application can make use of the button's action command as a messaging protocol.

version
1.77 05/05/04
author
Sami Shaio
see
java.awt.event.ActionEvent
see
java.awt.event.ActionListener
see
java.awt.Component#processMouseEvent
see
java.awt.Component#addMouseListener
since
JDK1.0

Fields Summary
String
label
The button's label. This value may be null.
String
actionCommand
The action to be performed once a button has been pressed. This value may be null.
transient ActionListener
actionListener
private static final String
base
private static int
nameCounter
private static final long
serialVersionUID
private int
buttonSerializedDataVersion
Constructors Summary
public Button()
Constructs a button with an empty string for its label.

exception
HeadlessException if GraphicsEnvironment.isHeadless() returns true
see
java.awt.GraphicsEnvironment#isHeadless



     
        /* ensure that the necessary native libraries are loaded */
	Toolkit.loadLibraries();
        if (!GraphicsEnvironment.isHeadless()) {
            initIDs();
        }
    
	this("");
    
public Button(String label)
Constructs a button with the specified label.

param
label a string label for the button, or null for no label
exception
HeadlessException if GraphicsEnvironment.isHeadless() returns true
see
java.awt.GraphicsEnvironment#isHeadless

        GraphicsEnvironment.checkHeadless();
	this.label = label;
    
Methods Summary
public synchronized voidaddActionListener(java.awt.event.ActionListener l)
Adds the specified action listener to receive action events from this button. Action events occur when a user presses or releases the mouse over this button. If l is null, no exception is thrown and no action is performed.

param
l the action listener
see
#removeActionListener
see
#getActionListeners
see
java.awt.event.ActionListener
since
JDK1.1

	if (l == null) {
	    return;
	}
	actionListener = AWTEventMulticaster.add(actionListener, l);
        newEventsOnly = true;
    
public voidaddNotify()
Creates the peer of the button. The button's peer allows the application to change the look of the button without changing its functionality.

see
java.awt.Toolkit#createButton(java.awt.Button)
see
java.awt.Component#getToolkit()

        synchronized(getTreeLock()) {
	    if (peer == null) 
	        peer = getToolkit().createButton(this);
	    super.addNotify();
	}
    
java.lang.StringconstructComponentName()
Construct a name for this component. Called by getName() when the name is null.

        synchronized (getClass()) {
	    return base + nameCounter++;
	}
    
booleaneventEnabled(java.awt.AWTEvent e)

        if (e.id == ActionEvent.ACTION_PERFORMED) {
            if ((eventMask & AWTEvent.ACTION_EVENT_MASK) != 0 ||
                actionListener != null) {
                return true;
            }
            return false;
        }
        return super.eventEnabled(e);
    
public javax.accessibility.AccessibleContextgetAccessibleContext()
Gets the AccessibleContext associated with this Button. For buttons, the AccessibleContext takes the form of an AccessibleAWTButton. A new AccessibleAWTButton instance is created if necessary.

return
an AccessibleAWTButton that serves as the AccessibleContext of this Button
beaninfo
expert: true description: The AccessibleContext associated with this Button.

        if (accessibleContext == null) {
            accessibleContext = new AccessibleAWTButton();
        }
        return accessibleContext;
    
public java.lang.StringgetActionCommand()
Returns the command name of the action event fired by this button. If the command name is null (default) then this method returns the label of the button.

        return (actionCommand == null? label : actionCommand);
    
public synchronized java.awt.event.ActionListener[]getActionListeners()
Returns an array of all the action listeners registered on this button.

return
all of this button's ActionListeners or an empty array if no action listeners are currently registered
see
#addActionListener
see
#removeActionListener
see
java.awt.event.ActionListener
since
1.4

        return (ActionListener[]) (getListeners(ActionListener.class));
    
public java.lang.StringgetLabel()
Gets the label of this button.

return
the button's label, or null if the button has no label.
see
java.awt.Button#setLabel

	return label;
    
public T[]getListeners(java.lang.Class listenerType)
Returns an array of all the objects currently registered as FooListeners upon this Button. FooListeners are registered using the addFooListener method.

You can specify the listenerType argument with a class literal, such as FooListener.class. For example, you can query a Button b for its action listeners with the following code:

ActionListener[] als = (ActionListener[])(b.getListeners(ActionListener.class));
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 java.util.EventListener
return
an array of all objects registered as FooListeners on this button, or an empty array if no such listeners have been added
exception
ClassCastException if listenerType doesn't specify a class or interface that implements java.util.EventListener
see
#getActionListeners
since
1.3

	EventListener l = null;
	if  (listenerType == ActionListener.class) { 
	    l = actionListener;
	} else {
	    return super.getListeners(listenerType);
	}
	return AWTEventMulticaster.getListeners(l, listenerType);
    
private static native voidinitIDs()
Initialize JNI field and method IDs for fields that may be accessed from C.

protected java.lang.StringparamString()
Returns a string representing the state of this 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 null.

return
the parameter string of this button

	return super.paramString() + ",label=" + label;
    
protected voidprocessActionEvent(java.awt.event.ActionEvent e)
Processes action events occurring on this button by dispatching them to any registered ActionListener objects.

This method is not called unless action events are enabled for this button. Action events are enabled when one of the following occurs:

  • An ActionListener object is registered via addActionListener.
  • Action events are enabled via enableEvents.

Note that if the event parameter is null the behavior is unspecified and may result in an exception.

param
e the action event
see
java.awt.event.ActionListener
see
java.awt.Button#addActionListener
see
java.awt.Component#enableEvents
since
JDK1.1

        ActionListener listener = actionListener;
        if (listener != null) {
            listener.actionPerformed(e);
        }
    
protected voidprocessEvent(java.awt.AWTEvent e)
Processes events on this button. If an event is an instance of ActionEvent, this method invokes the processActionEvent method. Otherwise, it invokes processEvent on the superclass.

Note that if the event parameter is null the behavior is unspecified and may result in an exception.

param
e the event
see
java.awt.event.ActionEvent
see
java.awt.Button#processActionEvent
since
JDK1.1

        if (e instanceof ActionEvent) {
            processActionEvent((ActionEvent)e);
            return;
        }
	super.processEvent(e);
    
private voidreadObject(java.io.ObjectInputStream s)
Reads the ObjectInputStream and if it isn't null adds a listener to receive action events fired by the button. Unrecognized keys or values will be ignored.

param
s the ObjectInputStream to read
exception
HeadlessException if GraphicsEnvironment.isHeadless returns true
serial
see
#removeActionListener(ActionListener)
see
#addActionListener(ActionListener)
see
java.awt.GraphicsEnvironment#isHeadless
see
#writeObject(ObjectOutputStream)

      GraphicsEnvironment.checkHeadless();
      s.defaultReadObject();

      Object keyOrNull;
      while(null != (keyOrNull = s.readObject())) {
	String key = ((String)keyOrNull).intern();

	if (actionListenerK == key)
	  addActionListener((ActionListener)(s.readObject()));

	else // skip value for unrecognized key
	  s.readObject();
      }
    
public synchronized voidremoveActionListener(java.awt.event.ActionListener l)
Removes the specified action listener so that it no longer receives action events from this button. Action events occur when a user presses or releases the mouse over this button. If l is null, no exception is thrown and no action is performed.

param
l the action listener
see
#addActionListener
see
#getActionListeners
see
java.awt.event.ActionListener
since
JDK1.1

	if (l == null) {
	    return;
	}
	actionListener = AWTEventMulticaster.remove(actionListener, l);
    
public voidsetActionCommand(java.lang.String command)
Sets the command name for the action event fired 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 null then the action command is set to match the label of the button.
see
java.awt.event.ActionEvent
since
JDK1.1

        actionCommand = command;
    
public voidsetLabel(java.lang.String label)
Sets the button's label to be the specified string.

param
label the new label, or null if the button has no label.
see
java.awt.Button#getLabel

        boolean testvalid = false;

	synchronized (this) {
	    if (label != this.label && (this.label == null ||
					!this.label.equals(label))) {
	        this.label = label;
		ButtonPeer peer = (ButtonPeer)this.peer;
		if (peer != null) {
		    peer.setLabel(label);
		}
		testvalid = true;
	    }
	}

	// This could change the preferred size of the Component.
	if (testvalid && valid) {
	    invalidate();
	}
    
private voidwriteObject(java.io.ObjectOutputStream s)
Writes default serializable fields to stream. Writes a list of serializable ActionListeners as optional data. The non-serializable ActionListeners are detected and no attempt is made to serialize them.

serialData
null terminated sequence of 0 or more pairs: the pair consists of a String and an Object; the String indicates the type of object and is one of the following: actionListenerK indicating an ActionListener object
param
s the ObjectOutputStream to write
see
AWTEventMulticaster#save(ObjectOutputStream, String, EventListener)
see
java.awt.Component#actionListenerK
see
#readObject(ObjectInputStream)


                                                                                       			                   
       
       
    
      s.defaultWriteObject();

      AWTEventMulticaster.save(s, actionListenerK, actionListener);
      s.writeObject(null);