      1  import java.awt.BorderLayout;

      2  import java.awt.Color;

      3  import java.awt.GridLayout;

      4  import javax.swing.JFrame;

      5  import javax.swing.JLabel;

      6  import javax.swing.JPanel;

      7  import javax.swing.JSlider;

      8  import javax.swing.event.ChangeListener;

      9  import javax.swing.event.ChangeEvent;

     10

     11  public class ColorViewerFrame extends JFrame

     12  {

     13     private static final int FRAME_WIDTH = 300;

     14     private static final int FRAME_HEIGHT = 400;

     15

     16     private JPanel colorPanel;

     17     private JSlider redSlider;

     18     private JSlider greenSlider;

     19     private JSlider blueSlider;

     20

     21     public ColorViewerFrame()

     22     {

     23        colorPanel = new JPanel();

     24

     25        add(colorPanel, BorderLayout.CENTER);

     26        createControlPanel();

     27        setSampleColor();

     28        setSize(FRAME_WIDTH, FRAME_HEIGHT);

     29     }

     30

     31     public void createControlPanel()

     32     {

     33        class ColorListener implements ChangeListener

     34        {

     35           public void stateChanged(ChangeEvent event)

     36           {

     37              setSampleColor();

     38           }

     39        }

     40

     41        ChangeListener listener = new ColorListener();

     42

     43        redSlider = new JSlider(0, 255, 255);

     44        redSlider.addChangeListener(listener);

     45

     46        greenSlider = new JSlider(0, 255, 175);

     47        greenSlider.addChangeListener(listener);

     48

     49        blueSlider = new JSlider(0, 255, 175);

     50        blueSlider.addChangeListener(listener);

     51

     52        JPanel controlPanel = new JPanel();

     53        controlPanel.setLayout(new GridLayout(3, 2));

     54

     55        controlPanel.add(new JLabel("Red"));

     56        controlPanel.add(redSlider);

     57

     58        controlPanel.add(new JLabel("Green"));

     59        controlPanel.add(greenSlider);

     60

     61        controlPanel.add(new JLabel("Blue"));

     62        controlPanel.add(blueSlider);

     63

     64        add(controlPanel, BorderLayout.SOUTH);

     65     }

     66

     67     /**

     68        Reads the slider values and sets the panel to

     69        the selected color.

     70     */

     71     public void setSampleColor()

     72     {

     73        // Read slider values

     74

     75        int red = redSlider.getValue();

     76        int green = greenSlider.getValue();

     77        int blue = blueSlider.getValue();

     78

     79        // Set panel background to selected color

     80

     81        colorPanel.setBackground(new Color(red, green, blue));

     82        colorPanel.repaint();

     83     }

     84   }