как переместить jslider при нажатии мыши на кнопку j? - PullRequest
1 голос
/ 10 ноября 2010

У меня есть две кнопки j (слева и справа на jslider) и одна кнопка jslider.

При нажатии на левую кнопку J, кнопка jslider должна двигаться влево.

При нажатии мыши на правую кнопку Jslider необходимо переместить вправо.

Пожалуйста, помогите мне, как я могу решить эту проблему.

Спасибо Джиоти

Ответы [ 3 ]

2 голосов
/ 10 ноября 2010

JSlider#setValue используется для установки значения положения ползунков.Значение должно находиться в диапазоне (включая) JSlider#getMinimum и JSlider#getMaximum, а ползунок позаботится о преобразовании значения в «позицию пикселя».


Изменить - вы можете ввестизадерживается с Thread#sleep.Вам просто нужно «подождать» несколько миллисекунд, прежде чем отправить следующее сообщение «setValue» на JSlider:

Итак, пока кнопка нажата, вы находитесь в цикле:

while(isPressed) {
  adjustSliderByOneTick();
   try { 
     Thread.sleep(100);  // 100 milliseconds for a first test
   } catch (InterruptedException e) {
     break;
   }
}

Если кнопка отпущена, вы устанавливаете флаг isPressed на false, и вышеуказанный цикл заканчивается.

2 голосов
/ 10 ноября 2010

Согласно здесь , все, что вам нужно сделать, это использовать setValue(int)

void setValue (int)

Устанавливает или получает текущее значение ползунка. Метод set также устанавливает регулятор слайдера.

Я предполагаю, что вы имеете в виду перемещение фактического указателя, а не самого компонента. Если вы хотите переместить весь JSlider, вы должны использовать метод .setLocation(int x, int y).

Редактировать: Это зависит от того, что вам нужно сделать. Если вы хотите перемещать ползунок программно, вы можете установить Thread.sleep (тайм-аут), чтобы поток на некоторое время приостанавливался, позволяя увидеть движение ползунка. С другой стороны, вы можете заставить слайдер двигаться один раз при каждом нажатии кнопки, например, каждый раз, когда нажимается кнопка «Влево», значение слайдера уменьшается на 10. Для правой кнопки происходит обратное. Последний представляется наиболее широко используемым (насколько мне известно) подходом.

0 голосов
/ 10 ноября 2010

В качестве альтернативы вы можете взглянуть на SpinSlider, который объединяет JSlider и JSpinner. Он также прекрасно работает с клавиатурой и настраивается на предпочитаемую пользователем частоту повторения клавиатуры на большинстве платформ.

...