FileDocCategorySizeDatePackage
Gauge.javaAPI DocExample1686Wed Apr 19 11:21:46 BST 2000actual

Gauge.java

/*
 * @(#)Gauge.java	1.2 97/01/14 Jeff Dinkins
 *
 * Copyright (c) 1995-1997 Sun Microsystems, Inc. All Rights Reserved.
 *
 */

package actual; 
import java.awt.*;
import java.applet.*;

/*
 * Gauge - a class that implements a lightweight component
 * that can be used, for example, as a performance meter.
 *
 * Lightweight components can have "transparent" areas, meaning that
 * you can see the background of the container behind these areas.
 *
 */
public class Gauge extends Component {
    
  // the current and total amounts that the gauge reperesents
  int current = 0;
  int total = 100;

  // The preferred size of the gauge
  int Height = 18;   // looks good
  int Width  = 250;  // arbitrary 

  /**
   * Constructs a Gauge
   */
  public Gauge() {
      this(Color.lightGray);
  }

  /**
   * Constructs a that will be drawn uses the
   * specified color.
   *
   * @gaugeColor the color of this Gauge
   */
  public Gauge(Color gaugeColor) {
      setBackground(gaugeColor);
  }

  public void paint(Graphics g) {
      int barWidth = (int) (((float)current/(float)total) * getSize().width);
      g.setColor(getBackground());
      g.fill3DRect(0, 0, barWidth, getSize().height-2, true);
  }

  public void setCurrentAmount(int Amount) {
      current = Amount; 

      // make sure we don't go over total
      if(current > 100)
       current = 100;

      repaint();
  }

  public int getCurrentAmount() {
      return current;
  }

  public int getTotalAmount() {
      return total;
  }

  public Dimension getPreferredSize() {
      return new Dimension(Width, Height);
  }

  public Dimension getMinimumSize() {
      return new Dimension(Width, Height);
  }

}