// PaletteFrame.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 PaletteFrame extends JFrame { private MyColorChooser colorChooser; private DrawPanel drawPanel; PaletteFrame() { setTitle("PaletteFrame"); setSize(200,300); setBackground(Color.white); setForeground(Color.black); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); init(); setVisible(true); } 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 ); } // end init public static void main(String args[]) { new PaletteFrame(); } }