滑块演示

    技术2022-05-11  75

    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);     } }

    最新回复(0)