home *** CD-ROM | disk | FTP | other *** search
/ Chip 1997 October / Chip_1997-10_cd.bin / tema / sybase / powerj / java.z / Button.java < prev    next >
Text File  |  1996-05-03  |  2KB  |  96 lines

  1. /*
  2.  * @(#)Button.java    1.17 96/04/04 Sami Shaio
  3.  *
  4.  * Copyright (c) 1994 Sun Microsystems, Inc. All Rights Reserved.
  5.  *
  6.  * Permission to use, copy, modify, and distribute this software
  7.  * and its documentation for NON-COMMERCIAL purposes and without
  8.  * fee is hereby granted provided that this copyright notice
  9.  * appears in all copies. Please refer to the file "copyright.html"
  10.  * for further important copyright and licensing information.
  11.  *
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
  13.  * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
  14.  * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  15.  * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
  16.  * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
  17.  * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
  18.  */
  19.  
  20. package java.awt;
  21.  
  22. import java.awt.peer.ButtonPeer;
  23.  
  24. /**
  25.  * A class that produces a labeled button component.
  26.  *
  27.  * @version     1.17 04 Apr 1996
  28.  * @author     Sami Shaio
  29.  */
  30. public class Button extends Component {
  31.     /**
  32.      * The string label for this button.
  33.      */
  34.     String label;
  35.     
  36.     /**
  37.      * Constructs a Button with no label.
  38.      */
  39.     public Button() {
  40.     this("");
  41.     }
  42.  
  43.     /**
  44.      * Constructs a Button with a string label.
  45.      * @param label the button label
  46.      */
  47.     public Button(String label) {
  48.     this.label = label;
  49.     }
  50.     
  51.     /**
  52.      * Creates the peer of the button.  This peer allows us to
  53.      * change the look of the button without changing its functionality.
  54.      */
  55.     public synchronized void addNotify() {
  56.     peer = getToolkit().createButton(this);
  57.     super.addNotify();
  58.     }
  59.  
  60.     /**
  61.      * Gets the label of the button.
  62.      * @see #setLabel
  63.      */
  64.     public String getLabel() {
  65.     return label;
  66.     }
  67.  
  68.     /**
  69.      * Sets the button with the specified label.
  70.      * @param label the label to set the button with
  71.      * @see #getLabel
  72.      */
  73.     public void setLabel(String label) {
  74.     this.label = label;
  75.  
  76.     ButtonPeer peer = (ButtonPeer)this.peer;
  77.     if (peer != null) {
  78.         peer.setLabel(label);
  79.     }
  80.     }
  81.  
  82.     /**
  83.      * Returns the parameter String of this button.
  84.      */
  85.     protected String paramString() {
  86.     return super.paramString() + ",label=" + label;
  87.     }
  88.  
  89.     /* Can this field be tabbed to? */
  90.     boolean tabbable() {
  91.       return true;
  92.     }
  93. }
  94.  
  95.  
  96.