我想这是一个非常愚蠢的问题,但我想不出解决办法/如何向谷歌提出这个问题。基本上,我希望我的JSlider在用户每次点击它时改变它的每一个X单位,而不是一个单元。我该怎么做呢?
发布于 2018-09-25 10:16:05
这就是我在我的应用程序中所做的.假设是setMinorTickSpacing()
和setMajorTickSpacing()
JSlider jSlider1 = new JSlider();
jSlider1.setMajorTickSpacing(50);
jSlider1.setMaximum(500);
jSlider1.setMinimum(100);
jSlider1.setMinorTickSpacing(50);
jSlider1.setPaintLabels(true);
jSlider1.setPaintTicks(true);
jSlider1.setSnapToTicks(true);
发布于 2018-09-25 10:19:19
正如另一个答案所指出的,你需要
setSnapToTicks(true)
,使滑块在默认情况下移动较小的刻度增量。例如,
final JSlider slider = new JSlider(0, 100, 50);
slider.setMinorTickSpacing(5);
slider.setMajorTickSpacing(20);
slider.setPaintTicks(true);
slider.setPaintLabels(true);
slider.setSnapToTicks(true);
slider.addChangeListener(ce -> {
System.out.println("value: " + slider.getValue());
});
JOptionPane.showMessageDialog(null, slider);
https://stackoverflow.com/questions/52504399
复制