// PaletteApp.java
// Program allows the user to create a custom color.

import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;

public class PaletteApp extends JApplet {
   private MyColorChooser colorChooser;
   private DrawPanel drawPanel;
    
   public void init()
   {
      colorChooser = new MyColorChooser();

      Container c = getContentPane();
      c.add( colorChooser, BorderLayout.SOUTH );

      final JSlider red = colorChooser.getRedSlider();
      red.addChangeListener(
         new ChangeListener() {
            public void stateChanged( ChangeEvent e )
            {
               drawPanel.setRed( red.getValue() );
            }
         }
      );
      final JTextField redField = colorChooser.getRedDisplay();
      redField.addActionListener(
         new ActionListener() {
            public void actionPerformed( ActionEvent e )
            {
               drawPanel.setRed( Integer.parseInt( redField.getText() ) );
            }
         }
      );

      final JSlider green = colorChooser.getGreenSlider();
      green.addChangeListener(
         new ChangeListener() {
            public void stateChanged( ChangeEvent e )
            {
               drawPanel.setGreen( green.getValue() );
            }
         }
      );
      final JTextField greenField = colorChooser.getGreenDisplay();
      greenField.addActionListener(
         new ActionListener() {
            public void actionPerformed( ActionEvent e )
            {
               drawPanel.setGreen( Integer.parseInt( greenField.getText() ) );
            }
         }
      );

      final JSlider blue = colorChooser.getBlueSlider();
      blue.addChangeListener(
         new ChangeListener() {
            public void stateChanged( ChangeEvent e )
            {
               drawPanel.setBlue( blue.getValue() );
            }
         }
      );
      final JTextField blueField = colorChooser.getBlueDisplay();
      blueField.addActionListener(
         new ActionListener() {
            public void actionPerformed( ActionEvent e )
            {
               drawPanel.setBlue( Integer.parseInt( blueField.getText() ) );
            }
         }
      );

      drawPanel = new DrawPanel( Color.black );
      c.add( drawPanel, BorderLayout.CENTER );
   }
}


