previous | start | next

File SliderFrame.java

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


previous | start | next