【发布时间】:2015-08-05 14:36:35
【问题描述】:
我有一个从 min 到 max 值的 JSlider。我想为滑块的移动设置一个范围限制。
即我想将滑块限制从 -90 到 90,但我只想在 -45 和 60 之间移动滑块。在这种情况下,滑块没有达到限制,但在达到之前就被阻止了。
我怎样才能得到这个结果?
import java.awt.BorderLayout;
import javax.swing.BoundedRangeModel;
import javax.swing.JFrame;
import javax.swing.JSlider;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class TickSlidersSnapToTicks {
public static void main(String args[]) {
JFrame frame = new JFrame("Tick Slider");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JSlider slider = new JSlider(-90, 90, 0);
// Major Tick 25 - Minor 5
jSliderOne.setMinorTickSpacing(5);
jSliderOne.setMajorTickSpacing(25);
jSliderOne.setPaintTicks(true);
// I want to put here slider block limits
// ...
frame.add(jSliderOne, BorderLayout.NORTH);
frame.setSize(300, 200);
frame.setVisible(true);
}
}
【问题讨论】:
-
这不是 JSlider 的工作方式。将 -45 和 60 作为最小和最大限制。
-
所以我想我需要重写一些东西才能获得我想要的结果。