A Simple RGB Color Swatch


 

/*
	A useful applet that demonstrates the use of sliders in a very basic
	way. However, the applet can be used as a color swatch to determine the
	RGB values for various colors.
	
	There are three sliders (one each for RGB) and three labels (passive GUI
	widgets.
	
	The placement of all widgets is not specified. Later we'll learn how
	to design better GUI layouts.

*/
import java.awt.*;
import java.applet.Applet;
import java.awt.event.*;

public class swatch extends Applet implements AdjustmentListener {

	Scrollbar redSlider, greenSlider, blueSlider;	// the three sliders
	Label redLabel, greenLabel, blueLabel;			// labels for them
	int redValue, greenValue, blueValue;			// current RGB values
	Color theColor=Color.black;
	Color textColor=Color.white;
	
	public void init() {
	
		// create GUI widgets for red (label and scrollbar)
		redLabel = new Label("Red");
		add(redLabel);
		redSlider = new Scrollbar(Scrollbar.HORIZONTAL, 0, 1, 0, 256);
		add(redSlider);
		redSlider.addAdjustmentListener(this);
		
		// create GUI widgets for green
		greenLabel = new Label("Green");
		add(greenLabel);
		greenSlider = new Scrollbar(Scrollbar.HORIZONTAL, 0, 1, 0, 256);
		add(greenSlider);
		greenSlider.addAdjustmentListener(this);
		
		// create GUI widgets for blue
		blueLabel = new Label("Blue");
		add(blueLabel);
		blueSlider = new Scrollbar(Scrollbar.HORIZONTAL, 0, 1, 0, 256);
		add(blueSlider);
		blueSlider.addAdjustmentListener(this);
		
		
	} // end of init
	
	public void paint(Graphics g) {
		// set the swatch to theColor
		setBackground(theColor);
		
		// print out the color values using text of complementary color
		textColor = new Color(255-redValue, 255-greenValue, 255-blueValue);
		g.setColor(textColor);
		g.drawString("Red = " + redValue, 50, 50);
		g.drawString("Green = " + greenValue, 50, 80);
		g.drawString("Blue = " + blueValue, 50, 100);
	} // end of paint
	
	public void adjustmentValueChanged (AdjustmentEvent e) {
	
		redValue = redSlider.getValue();
		greenValue = greenSlider.getValue();
		blueValue = blueSlider.getValue();
		
		// create the new color
		theColor = new Color(redValue, greenValue, blueValue);
		
		repaint();
	} // end of adjustmentValueChanged
	
} // end of applet swatch