// MyColorChooser.java import javax.swing.*; import javax.swing.event.*; import java.awt.*; import java.awt.event.*; public class MyColorChooser extends JPanel { private JSlider redSlider, blueSlider, greenSlider; private JTextField redDisplay, blueDisplay, greenDisplay; private JLabel redLabel, blueLabel, greenLabel; private Color color; public MyColorChooser() { redLabel = new JLabel( "Red:" ); redSlider = new JSlider( SwingConstants.HORIZONTAL, 0, 255, 1 ); redDisplay = new JTextField( "0", 4 ); greenLabel = new JLabel( "Green:" ); greenSlider = new JSlider( SwingConstants.HORIZONTAL, 0, 255, 1 ); greenDisplay = new JTextField( "0", 4 ); blueLabel = new JLabel( "Blue:" ); blueSlider = new JSlider( SwingConstants.HORIZONTAL, 0, 255, 1 ); blueDisplay = new JTextField( "0", 4 ); setLayout( new GridLayout( 3, 3 ) ); add( redLabel ); add( redSlider ); add( redDisplay ); add( greenLabel ); add( greenSlider ); add( greenDisplay ); add( blueLabel ); add( blueSlider ); add( blueDisplay ); redSlider.addChangeListener( new ChangeHandler() ); greenSlider.addChangeListener( new ChangeHandler() ); blueSlider.addChangeListener( new ChangeHandler() ); redDisplay.addActionListener( new ActionHandler() ); greenDisplay.addActionListener( new ActionHandler() ); blueDisplay.addActionListener( new ActionHandler() ); color = Color.black; } public void setColor( Color c ) { color = c; redSlider.setValue( c.getRed() ); redDisplay.setText( String.valueOf( c.getRed() ) ); greenSlider.setValue( c.getGreen() ); greenDisplay.setText( String.valueOf( c.getGreen() ) ); blueSlider.setValue( c.getBlue() ); blueDisplay.setText( String.valueOf( c.getBlue() ) ); } public Color getColor() { return color; } public JSlider getRedSlider() { return redSlider; } public JSlider getGreenSlider() { return greenSlider; } public JSlider getBlueSlider() { return blueSlider; } public JTextField getRedDisplay() { return redDisplay; } public JTextField getGreenDisplay() { return greenDisplay; } public JTextField getBlueDisplay() { return blueDisplay; } private class ChangeHandler implements ChangeListener { public void stateChanged( ChangeEvent e ) { int r = redSlider.getValue(); int b = blueSlider.getValue(); int g = greenSlider.getValue(); color = new Color( r, g, b ); redDisplay.setText( String.valueOf( r ) ); blueDisplay.setText( String.valueOf( b ) ); greenDisplay.setText( String.valueOf( g ) ); } } private class ActionHandler implements ActionListener { public void actionPerformed( ActionEvent e ) { int r = Integer.parseInt( redDisplay.getText() ); int g = Integer.parseInt( greenDisplay.getText() ); int b = Integer.parseInt( blueDisplay.getText() ); color = new Color( r, g, b ); redSlider.setValue( r ); greenSlider.setValue( g ); blueSlider.setValue( b ); } } }