滑块演示

<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->  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 

你可能感兴趣的:(swing)