Перемещение 2 ползунков вместе - PullRequest
0 голосов
/ 24 мая 2018

В настоящее время я делаю программу для школы, где я должен заблокировать соотношение при настройке JSliders.

Я не мог понять, как изменить один слайдер с тем же значением при изменении первого слайдера.Я хочу изменить ползунки в соотношении 1: 1, поэтому, если я увеличу ширину до 5, длина также увеличится до 5, но я не мог понять, как найти постоянную разницу для вычисления при изменении значения.

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Чтобы ответить «как вы можете создать 2 ползунка с той же моделью»:

DefaultBoundedRangeModel brm = new DefaultBoundedRangeModel();
brm.setMaximum(100);
width = new JSlider(brm);
length = new JSlider(brm);
0 голосов
/ 24 мая 2018

В вашем коде вы устанавливаете значение длины на основе length.getValue, но вы хотите, чтобы длина была установлена ​​при изменении ширины и наоборот.Поэтому я предлагаю вам установить длину как length.setValue(width.getValue());

 if(lkRatio.isSelected() !=true){
    tempw = width.getValue();
    templ = length.getValue();
    diff = width.getValue() - length.getValue();
}


if(lkRatio.isSelected()){

  if(source == width){
    length.setValue(width.getValue() - diff);
  }

  if(source == length){
       width.setValue(length.getValue() + diff);
  }
}
...