package com.sxt.img; import java.awt.BorderLayout; import java.awt.Component; import java.util.Dictionary; import java.util.Hashtable; import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JSlider; import javax.swing.JTextField; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; public class JSliderTest { JFrame frame = new JFrame("JSlider测试"); Box sliderBox = new Box(BoxLayout.Y_AXIS); JTextField showValue = new JTextField(); ChangeListener listener = null; public void init() { listener = new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { JSlider slider = (JSlider) e.getSource(); showValue.setText("当前值:" + slider.getValue()); } }; JSlider slider = new JSlider(); addSlider(slider, "普通滚动条"); slider = new JSlider(); slider.setExtent(30);// 设置滚动条的保留区为30 addSlider(slider, "保留区为30"); slider = new JSlider(30, 200); slider.setPaintTicks(true); slider.setMajorTickSpacing(20); slider.setMinorTickSpacing(5); addSlider(slider, "带刻度"); slider = new JSlider(); slider.setSnapToTicks(true);// 设置滚动条只停留在有刻度的地方 slider.setPaintTicks(true); slider.setMinorTickSpacing(5); slider.setMajorTickSpacing(100); addSlider(slider, "滑块停在刻度处"); slider = new JSlider(); slider.setPaintTrack(false); slider.setPaintTicks(true); slider.setMinorTickSpacing(5); slider.setMajorTickSpacing(100); addSlider(slider, "没有滑动轨道的滚动条"); slider = new JSlider(); slider.setPaintTicks(true); slider.setMajorTickSpacing(100); slider.setMinorTickSpacing(5); slider.setInverted(true); addSlider(slider, "设置没有反向的滚动条"); slider = new JSlider(); slider.setPaintTicks(true); slider.setMinorTickSpacing(5); slider.setMajorTickSpacing(100); slider.setPaintLabels(true);// 设置刻度标签 addSlider(slider, "数值刻度标签"); slider = new JSlider(); slider.setPaintTicks(true); slider.setMinorTickSpacing(5); slider.setMajorTickSpacing(100); slider.setPaintLabels(true); Dictionary labels = new Hashtable(); labels.put(0, new JLabel("A")); labels.put(20, new JLabel("B")); labels.put(40, new JLabel("C")); labels.put(60, new JLabel("D")); labels.put(80, new JLabel("E")); labels.put(100, new JLabel("F")); slider.setLabelTable(labels); addSlider(slider, "JLable标签"); frame.add(sliderBox); frame.add(showValue, BorderLayout.SOUTH); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); } public void addSlider(JSlider slider, String description) { slider.addChangeListener(listener); Box box = new Box(BoxLayout.X_AXIS); JLabel label = new JLabel(description); box.add(label); box.add(slider); sliderBox.add(box); } public static void main(String[] args) { new JSliderTest().init(); } }