class SliderFrame extends JFrame
class ColorListener implements ChangeListener
1: // SliderFrame.java
3: import java.awt.BorderLayout;
4: import java.awt.Color;
5: import java.awt.Container;
6: import java.awt.Dimension;
7: import java.awt.GridLayout;
8: import java.awt.event.WindowAdapter;
9: import java.awt.event.WindowEvent;
10: import javax.swing.JFrame;
11: import javax.swing.JLabel;
12: import javax.swing.JPanel;
13: import javax.swing.JSlider;
14: import javax.swing.SwingConstants;
15: import javax.swing.event.ChangeListener;
16: import javax.swing.event.ChangeEvent;
18: class SliderFrame extends JFrame
19: {
20: public SliderFrame()
21: {
22: colorPanel = new JPanel();
23: colorPanel.setPreferredSize(new Dimension(PANEL_WIDTH, PANEL_HEIGHT));
24:
25: getContentPane().add(colorPanel, BorderLayout.CENTER);
26: createControlPanel();
27: setSampleColor();
28: pack();
29: }
31: public void createControlPanel()
32: {
33: class ColorListener implements ChangeListener
34: {
35: public void stateChanged(ChangeEvent event)
36: {
37: setSampleColor();
38: }
39: }
40: ChangeListener listener = new ColorListener();
42: redSlider = new JSlider(0, 100, 100);
43: redSlider.addChangeListener(listener);
45: greenSlider = new JSlider(0, 100, 70);
46: greenSlider.addChangeListener(listener);
48: blueSlider = new JSlider(0, 100, 70);
49: blueSlider.addChangeListener(listener);
50:
51: JPanel controlPanel = new JPanel();
52: controlPanel.setLayout(new GridLayout(3, 2));
54: controlPanel.add(new JLabel("Red",
55: SwingConstants.RIGHT));
56: controlPanel.add(redSlider);
58: controlPanel.add(new JLabel("Green",
59: SwingConstants.RIGHT));
60: controlPanel.add(greenSlider);
62: controlPanel.add(new JLabel("Blue",
63: SwingConstants.RIGHT));
64: controlPanel.add(blueSlider);
66: getContentPane().add(controlPanel, BorderLayout.SOUTH);
67: }
69:
70: /**
71: Reads the slider values and sets the panel to
72: the selected color.
73: */
74: public void setSampleColor()
75: { // read slider values
76:
77: float red = 0.01F * redSlider.getValue();
78: float green = 0.01F * greenSlider.getValue();
79: float blue = 0.01F * blueSlider.getValue();
81: // set panel background to selected color
82:
83: colorPanel.setBackground(new Color(red, green, blue));
84: colorPanel.repaint();
85: }
86:
87: private JPanel colorPanel;
88: private JSlider redSlider;
89: private JSlider greenSlider;
90: private JSlider blueSlider;
92: private static final int PANEL_WIDTH = 300;
93: private static final int PANEL_HEIGHT = 300;
94: }