package SliderFrame; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import java.awt.Dimension; import java.awt.GridLayout; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JSlider; import javax.swing.SwingConstants; import javax.swing.event.ChangeListener; import javax.swing.event.ChangeEvent; public class SliderFrame extends JFrame { private JPanel colorPanel; private JSlider redSlider; private JSlider greenSlider; private JSlider blueSlider; private static final int PANEL_WIDTH = 300; private static final int PANEL_HEIGHT = 300; public SliderFrame() { colorPanel = new JPanel(); colorPanel.setPreferredSize(new Dimension(PANEL_WIDTH, PANEL_HEIGHT)); getContentPane().add(colorPanel, BorderLayout.CENTER); createControlPanel(); setSampleColor(); pack(); } public void createControlPanel() { class ColorListener implements ChangeListener { public void stateChanged(ChangeEvent event) { setSampleColor(); } } ChangeListener listener = new ColorListener(); redSlider = new JSlider(0, 100, 100); redSlider.addChangeListener(listener); greenSlider = new JSlider(0, 100, 100); greenSlider.addChangeListener(listener); blueSlider = new JSlider(0, 100, 100); blueSlider.addChangeListener(listener); JPanel controlPanel = new JPanel(); controlPanel.setLayout(new GridLayout(3, 2)); controlPanel.add(new JLabel("Red", SwingConstants.RIGHT)); controlPanel.add(redSlider); controlPanel.add(new JLabel("Green", SwingConstants.RIGHT)); controlPanel.add(greenSlider); controlPanel.add(new JLabel("Blue", SwingConstants.RIGHT)); controlPanel.add(blueSlider); getContentPane().add(controlPanel, BorderLayout.SOUTH); } public void setSampleColor() { float red = 0.01F * redSlider.getValue(); float green = 0.01F * greenSlider.getValue(); float blue = 0.01F * blueSlider.getValue(); colorPanel.setBackground(new Color(red, green, blue)); colorPanel.repaint(); } }