import java.awt.*;
import java.util.HashMap;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class TestJSlider
{
public TestJSlider()
{}
public static void main(String args[])
{
//构建一个窗体容器
JFrame frame = new JFrame("test");
frame.setLayout (null);
frame.setSize (400,400);
//构建一个测试容器
TestPanel panel = new TestPanel();
panel.setBounds (100,100,300,300);
frame.add (panel);
//构建一个滚动条
JSlider slider = new JSlider ();
//设置滑块的标尺距离
slider.setMajorTickSpacing (5);
//设置滑块自动接近
slider.setSnapToTicks (true);
//设置是否在滑块上显示标尺
slider.setPaintTicks(true);
slider.setOrientation (JSlider.HORIZONTAL);
slider.setBounds (0,0,300,100);
frame.add (slider);
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
frame.setVisible (true);
//构建一个事件鉴听
SliderListener listener = new SliderListener(slider,panel);
slider.addChangeListener (listener);
}
}
class SliderListener implements ChangeListener
{
private JSlider slider;
private TestPanel panel;
public SliderListener(JSlider slider,TestPanel panel)
{
super();
this.slider = slider;
this.panel = panel;
}
public void stateChanged(ChangeEvent e)
{
if(e.getSource ()==slider)
{
panel.setHeight (slider.getValue ());
panel.setWidth (slider.getValue ());
}
}
}
class TestPanel extends JPanel
{
private int w = 100;
private int h = 100;
public TestPanel()
{
super();
}
public void setWidth(int a)
{
this.w = a;
repaint();
}
public void setHeight(int b)
{
this.h = b;
repaint();
}
public void paintComponent(Graphics g)
{
super.paintComponent (g);
g.fillOval (0,0,w,h);
}
}