更改 JSlider 的单位移动
Changing the unit movement of a JSlider
我想这是一个非常愚蠢的问题,但我想不出 solution/how 向 google 问这个问题。基本上,我希望我的 JSlider 每次用户单击它时每 X 个单位更改一次,而不是 1 个单位。我该怎么做?
这就是我在我的一个应用程序中所做的......假设它是 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);
如其他答案所述,您需要
- 将次刻度间距设置为您希望它移动的距离
- 设置
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);
我想这是一个非常愚蠢的问题,但我想不出 solution/how 向 google 问这个问题。基本上,我希望我的 JSlider 每次用户单击它时每 X 个单位更改一次,而不是 1 个单位。我该怎么做?
这就是我在我的一个应用程序中所做的......假设它是 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);
如其他答案所述,您需要
- 将次刻度间距设置为您希望它移动的距离
- 设置
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);