Java JSlider установить значения - PullRequest
3 голосов
/ 14 июля 2011

Как я могу установить значения JSlider? Я хочу назначить ему конкретные значения с интервалами, которые не являются постоянными. Пожалуйста, помогите

Ответы [ 2 ]

4 голосов
/ 14 июля 2011

Использование BoundedRangeModel Вы можете изменить эту модель и синхронизировать SJlider.

    BoundedRangeModel bRangeModel = 
      new DefaultBoundedRangeModel(initValue, extent, min, max);
    JSlider s = new JSlider(bRangeModel);

Но размер шага не привязан к модели.Вы можете установить шаг с небольшим интервалом между тиками (я думаю, это то, что вы хотите)

    slider.setMinorTickSpacing(5); // step / interavl
    slider.setSnapToTicks(true); // should be activated for custom tick space


В качестве альтернативы вы можете использовать JSpinner:
    SpinnerModel spinnerModel = 
      new SpinnerNumberModel(value, minimum, maximum, stepSize);
    JSpinner spinner = new JSpinner(spinnerModel);

    // changing the stepSize at anytime
    sm.setStepSize(newValue);
4 голосов
/ 14 июля 2011

Вы можете установить минимальное и максимальное значения ползунка с помощью конструктора:

JSlider mySlider = new Slider(10, 30); // min value of slider, maxValue of slider

Насколько я знаю, диапазон ползунка одинаков и не может быть изменен. (Хотя я не уверен в этом.) То, что вы можете сделать, это использовать единообразное значение и сопоставить его с желаемыми интервалами. Например, допустим, вы хотите, чтобы ползунок перемещался от 10 до 10000, но в логарифмическом масштабе.

Установите минимальное значение 1 (логарифмическая основа 10 из 10 = 1), максимальное значение 4 (логарифмическая основа 10 из 10 000) = 4. Получите текущее значение ползунка, используя метод getValue(), и поднимите 10 к этой силе с Math.pow().

Или вы можете сохранить значения, соответствующие положениям ползунка, со значениями, которые вы хотите в массиве, если они не могут быть вычислены.

Вы можете использовать setLabelTable(Dictionary labels) для установки пользовательских меток. Эта страница содержит информацию о том, как создавать собственные метки. Как указывалось здесь вы бы на самом деле использовали HashTable класс, который реализует интерфейс Dictionary.

Ура!

...