更改JSlider的单位运动

时间:2018-09-25 18:11:24

标签: java swing user-interface jslider

我认为这是一个非常愚蠢的问题,但是我无法弄清楚解决方案/如何向Google提出此问题。基本上,我希望用户每次单击JSlider时,每X个单位都要更改一次,而不是1个单位。我该怎么办?

2 个答案:

答案 0 :(得分:3)

这就是我在一个应用中所做的...假设它是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);

答案 1 :(得分:1)

如其他答案所述,您需要

  1. 将次刻度间隔设置为您希望它移动的幅度
  2. 设置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);