1 import java.awt.*;
2 import java.util.HashMap;
3 import javax.swing.*;
4 import javax.swing.event.ChangeEvent;
5 import javax.swing.event.ChangeListener;
6
7 public class TestJSlider
8 {
9 public TestJSlider()
10 {}
11 public static void main(String args[])
12 {
13 //構建一個窗體容器
14 JFrame frame = new JFrame("test");
15 frame.setLayout (null);
16 frame.setSize (400,400);
17 //構建一個測試容器
18 TestPanel panel = new TestPanel();
19 panel.setBounds (100,100,300,300);
20 frame.add (panel);
21 //構建一個滾動條
22 JSlider slider = new JSlider ();
23 //設置滑塊的標尺距離
24 slider.setMajorTickSpacing (5);
25 //設置滑塊自動接近
26 slider.setSnapToTicks (true);
27 //設置是否在滑塊上顯示標尺
28 slider.setPaintTicks(true);
29 slider.setOrientation (JSlider.HORIZONTAL);
30 slider.setBounds (0,0,300,100);
31 frame.add (slider);
32
33 frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
34 frame.setVisible (true);
35 //構建一個事件鑒聽
36 SliderListener listener = new SliderListener(slider,panel);
37 slider.addChangeListener (listener);
38 }
39 }
40 class SliderListener implements ChangeListener
41 {
42 private JSlider slider;
43 private TestPanel panel;
44 public SliderListener(JSlider slider,TestPanel panel)
45 {
46 super();
47 this.slider = slider;
48 this.panel = panel;
49 }
50 public void stateChanged(ChangeEvent e)
51 {
52 if(e.getSource ()==slider)
53 {
54 panel.setHeight (slider.getValue ());
55 panel.setWidth (slider.getValue ());
56
57 }
58 }
59 }
60 class TestPanel extends JPanel
61 {
62 private int w = 100;
63 private int h = 100;
64 public TestPanel()
65 {
66 super();
67 }
68 public void setWidth(int a)
69 {
70 this.w = a;
71 repaint();
72 }
73 public void setHeight(int b)
74 {
75 this.h = b;
76 repaint();
77 }
78 public void paintComponent(Graphics g)
79 {
80 super.paintComponent (g);
81 g.fillOval (0,0,w,h);
82 }
83 }
84
2 import java.util.HashMap;
3 import javax.swing.*;
4 import javax.swing.event.ChangeEvent;
5 import javax.swing.event.ChangeListener;
6
7 public class TestJSlider
8 {
9 public TestJSlider()
10 {}
11 public static void main(String args[])
12 {
13 //構建一個窗體容器
14 JFrame frame = new JFrame("test");
15 frame.setLayout (null);
16 frame.setSize (400,400);
17 //構建一個測試容器
18 TestPanel panel = new TestPanel();
19 panel.setBounds (100,100,300,300);
20 frame.add (panel);
21 //構建一個滾動條
22 JSlider slider = new JSlider ();
23 //設置滑塊的標尺距離
24 slider.setMajorTickSpacing (5);
25 //設置滑塊自動接近
26 slider.setSnapToTicks (true);
27 //設置是否在滑塊上顯示標尺
28 slider.setPaintTicks(true);
29 slider.setOrientation (JSlider.HORIZONTAL);
30 slider.setBounds (0,0,300,100);
31 frame.add (slider);
32
33 frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
34 frame.setVisible (true);
35 //構建一個事件鑒聽
36 SliderListener listener = new SliderListener(slider,panel);
37 slider.addChangeListener (listener);
38 }
39 }
40 class SliderListener implements ChangeListener
41 {
42 private JSlider slider;
43 private TestPanel panel;
44 public SliderListener(JSlider slider,TestPanel panel)
45 {
46 super();
47 this.slider = slider;
48 this.panel = panel;
49 }
50 public void stateChanged(ChangeEvent e)
51 {
52 if(e.getSource ()==slider)
53 {
54 panel.setHeight (slider.getValue ());
55 panel.setWidth (slider.getValue ());
56
57 }
58 }
59 }
60 class TestPanel extends JPanel
61 {
62 private int w = 100;
63 private int h = 100;
64 public TestPanel()
65 {
66 super();
67 }
68 public void setWidth(int a)
69 {
70 this.w = a;
71 repaint();
72 }
73 public void setHeight(int b)
74 {
75 this.h = b;
76 repaint();
77 }
78 public void paintComponent(Graphics g)
79 {
80 super.paintComponent (g);
81 g.fillOval (0,0,w,h);
82 }
83 }
84