2013-05-02 3 views
1

Я хочу иметь следующий слайдер, где пользователь может выбрать только предопределенный набор значений (64, 128, 256, ... 2048), и я также хочу иметь возможность устанавливать метки для этих тиков. Что-то вроде этого:Непрерывный слайдер


[--*---------*------------------O--------------] 
    64  128    256 

Есть ли встроенное решение или компонент для такого непрерывного слайдера?

+0

это кажется, что вы просто маркировать тики с силами 2 ... – Randy

+0

@Randy вы абсолютно правы :) –

+0

затем делает нормальное управление Качелями работа? – Randy

ответ

2

Вот для JavaFX-8 (это не относится к JFX-2 из-за вопроса, часы комментарий ниже):

@Override 
public void start(Stage stage) throws Exception { 
    Slider s = new Slider(); 
    s.setLabelFormatter(new StringConverter<Double>() { 
     @Override 
     public String toString(Double t) { 
      return String.valueOf(Math.round(Math.pow(2, t))); 
     } 

     @Override 
     public Double fromString(String string) { 
      return Double.parseDouble(string); 
     } 
    }); 

    s.setMin(0); 
    s.setMax(10); 
    s.setMajorTickUnit(1); 
    s.setMinorTickCount(0); 
    s.setSnapToTicks(true); 
    s.setShowTickLabels(true); 
    s.setShowTickMarks(true); 

    stage.setScene(new Scene(s)); 
    stage.show(); 
} 

Но по вопросу: https://javafx-jira.kenai.com/browse/RT-18448 решение не может быть применен до 8.0 выпуска строит.

Проблема в том, что, кажется, нет способа решить проблему, используя манипуляции с левыми свойствами. Поскольку все левые свойства могут манипулировать ползунком с изменением линейного значения. Изменение логарифмического значения достигается через LabelFormatter, т. Е. Трюк.

Существует также функция по настройке: https://javafx-jira.kenai.com/browse/RT-27863

+0

О, спасибо! Похоже, что мне нужно. Но, к сожалению, он показывает метки как 1, 2, 3, 4 вместо 2, 4, 8, 16. –

+0

Что вы говорите, означает, что labelFormatter не применялся. Это означает, что вы используете очень старую сборку. Какая версия JFX используется? –

+0

Я использую 8.0b87, и я вижу 1, 2, 4, 8 ... –

Смежные вопросы