
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<Integer, Component> labels = new Hashtable<Integer, Component>(); |
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(); |
} |
} |



