如何设置JSlider
的值?我想为它分配特定的值,间隔不是常数。
请帮忙
答案 0 :(得分:4)
您可以使用构造函数设置滑块的最小值和最大值:
JSlider mySlider = new Slider(10, 30); // min value of slider, maxValue of slider
据我所知,滑块的范围是均匀的,无法更改。 (虽然我不确定。)你可以做的是使用统一值并将其映射到你想要的间隔。例如,让我们说你希望滑块从10变为10000,但是以对数刻度。
将最小值设置为1(日志基数10为10 = 1),最大值为4(日志基数10为10,000)= 4.使用getValue()
方法获取滑块的当前值用Math.pow()
将该值提高到10。
或者,如果无法计算滑块位置对应的值,则可以存储数组中所需的值。
您可以使用setLabelTable(Dictionary labels)
设置自定义标签。 This page包含有关如何创建自定义标签的信息。正如here指出的那样,你实际上会使用HashTable
一个实现Dictionary
接口的类。
干杯!
答案 1 :(得分:4)
使用BoundedRangeModel
您可以修改此模型,以便同步SJlider。
BoundedRangeModel bRangeModel =
new DefaultBoundedRangeModel(initValue, extent, min, max);
JSlider s = new JSlider(bRangeModel);
但步长并未与模型绑定。您可以使用次要刻度线间距设置步骤(我认为这是您想要的)
slider.setMinorTickSpacing(5); // step / interavl
slider.setSnapToTicks(true); // should be activated for custom tick space
<小时/> 或者,您可以使用JSpinner:
SpinnerModel spinnerModel =
new SpinnerNumberModel(value, minimum, maximum, stepSize);
JSpinner spinner = new JSpinner(spinnerModel);
// changing the stepSize at anytime
sm.setStepSize(newValue);