/*
 * BackColor.java
 * copyright (c) since 2004 "Kimmy" all right reserved.
 */

/*
<applet code="BackColor.class" width=400 height=300>
</applet>
*/

import java.applet.*;
import java.awt.*;
  
public class BackColor extends Applet{
 
  public int redvalue = 0;
  public int greenvalue = 0;
  public int bluevalue = 0;
  public String redrgb, greenrgb, bluergb;
  public Scrollbar rsb, gsb, bsb;
  public Label rv, gv, bv;
  public Panel center;
 
  public void init(){
    this.setBackground(Color.white);
    this.setLayout(new BorderLayout());
    int dx = 8;
 
    Panel south = new Panel();
    south.setLayout(new GridLayout(3, 1));
 
    Panel red = new Panel();
    red.setLayout(new BorderLayout());
    Label rl = new Label("R");
    rsb = new Scrollbar(Scrollbar.HORIZONTAL, redvalue, dx, 0, 255+dx);
    redrgb = change(redvalue/16) + change(redvalue%16);
    rv = new Label(redvalue+", "+redrgb, Label.RIGHT);
    red.add("West", rl);
    red.add("Center", rsb);
    red.add("East", rv);
    Panel green = new Panel();
    green.setLayout(new BorderLayout());
    Label gl = new Label("G");
    gsb = new Scrollbar(Scrollbar.HORIZONTAL, greenvalue, dx, 0, 255+dx);
    greenrgb = change(greenvalue/16) + change(greenvalue%16);
    gv = new Label(greenvalue+", "+greenrgb, Label.RIGHT);
    green.add("West", gl);
    green.add("Center", gsb);
    green.add("East", gv);
    Panel blue = new Panel();
    blue.setLayout(new BorderLayout());
    Label bl = new Label("B");
    bsb = new Scrollbar(Scrollbar.HORIZONTAL, bluevalue, dx, 0, 255+dx);
    bluergb = change(bluevalue/16) + change(bluevalue%16);
    bv = new Label(bluevalue+", "+bluergb, Label.RIGHT);
    blue.add("West", bl);
    blue.add("Center", bsb);
    blue.add("East", bv);

    south.add(red);
    south.add(green);
    south.add(blue);

    center = new Panel();
    center.setBackground(new Color(redvalue, greenvalue, bluevalue));

    this.add("South", south);
    this.add("Center", center);
  }

  public String change(int value){
    switch(value){
    case 10:
      return "a";
    case 11:
      return "b";
    case 12:
      return "c";
    case 13:
      return "d";
    case 14:
      return "e";
    case 15:
      return "f";
    default:
      return value+"";
    }
  }

  public boolean handleEvent(Event ev){
    if(ev.target instanceof Scrollbar){
      redvalue = rsb.getValue();
      redrgb = change(redvalue/16) + change(redvalue%16);
      greenvalue = gsb.getValue();
      greenrgb = change(greenvalue/16) + change(greenvalue%16);
      bluevalue = bsb.getValue();
      bluergb = change(bluevalue/16) + change(bluevalue%16);
      center.setBackground(new Color(redvalue, greenvalue, bluevalue));
      rv.setText(redvalue+", "+redrgb);
      gv.setText(greenvalue+", "+greenrgb);
      bv.setText(bluevalue+", "+bluergb);
    }
    return true;
  }

}






