Изменение движения юнита JSlider - PullRequest
0 голосов
/ 25 сентября 2018

Я полагаю, это очень глупый вопрос, но я не могу найти решение / как задать это в Google.По сути, я хочу, чтобы мой JSlider менял каждые X единиц каждый раз, когда пользователь нажимает на него вместо 1 единицы.Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Как отмечалось в другом ответе, вам нужно

  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);
0 голосов
/ 25 сентября 2018

это то, что я сделал в одном из моих приложений ... предположим, что это были 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);
...