//***************************************************************************** // ColorRGBPanel.java // // 15/3/00 // Geetika Tewari, Christie Rice & Victoria Manfredi // // //***************************************************************************** import java.awt.*; import java.awt.event.*; import java.lang.*; import java.io.*; import java.applet.*; import java.util.*; public class ColorRGBPanel extends Panel implements ColorCanvasObserver { ColorFrame cf; // Parent ColorButtonPanel cbp; int width, height; // Dimensions of panel ColorScrollTextPanel STPanel[]; Label redL, greenL, blueL; Scrollbar redSB, greenSB, blueSB; TextField redTF, greenTF, blueTF; String strR, strG, strB; // Used with TextFields ColorTextFieldHandler TFHandlerR, TFHandlerG, TFHandlerB; Color redC, greenC, blueC; // Passed to ScrollTextPanel to set the background //******************************** // // constructor // //******************************** public ColorRGBPanel(ColorFrame cff, ColorButtonPanel cbpp) { super(); cf = cff; cbp = cbpp; // Constructing red, blue, and green labels redL = new Label ("Red "); greenL = new Label ("Green"); blueL = new Label ("Blue "); // Creating red, blue, and green scrollbars redSB = new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,255); greenSB = new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,255); blueSB = new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,255); // Initializing red, blue, and green textfields strR = "" + cf.curc.getRed(); redTF = new TextField (strR,3); TFHandlerR = new ColorTextFieldHandler(cf,0); strG = "" + cf.curc.getGreen(); greenTF = new TextField (strG,3); TFHandlerG = new ColorTextFieldHandler(cf,1); strB = "" + cf.curc.getBlue(); blueTF = new TextField (strB,3); TFHandlerB = new ColorTextFieldHandler(cf,2); redC = new Color(255,0,0); greenC = new Color(0,255,0); blueC = new Color(0,0,255); STPanel = new ColorScrollTextPanel[Constants.NUM_ST_PANELS]; STPanel[0]= new ColorScrollTextPanel(cf, redL, redSB, redTF, redC, 0, TFHandlerR); STPanel[1]= new ColorScrollTextPanel(cf, greenL, greenSB, greenTF, greenC, 1, TFHandlerG); STPanel[2]= new ColorScrollTextPanel(cf, blueL, blueSB, blueTF, blueC, 2, TFHandlerB); height = cf.getSize().height; width = cf.getSize().width/2; setSize(width,height); setBackground(Color.yellow); // Setting up the RGBPanel panel setLayout(new GridLayout(3,1,0,0)); add(STPanel[0]); add(STPanel[1]); add(STPanel[2]); cbp.cc.registerAsObserver(this); // Register RGBPanel as an // observer of ColorCanvas }// end constructor //*************************** // // ColorCanvasHasChanged // //************************** public void ColorCanvasHasChanged(ColorCanvas cc) { redSB.setValue(cf.curc.getRed()); greenSB.setValue(cf.curc.getGreen()); blueSB.setValue(cf.curc.getBlue()); // get RGB values of current color and make them into strings strR = "" + cf.curc.getRed(); strG = "" + cf.curc.getGreen(); strB = "" + cf.curc.getBlue(); // clear textfields then put in new RGB string into textfield redTF.setText(""); redTF.setText(strR); greenTF.setText(""); greenTF.setText(strG); blueTF.setText(""); blueTF.setText(strB); }// end ColorCanvasHasChanged }//end class ColorRGBPanel