我想要有以下滑块,用户只能选择预定义的一组值(64,128,256,... 2048),我也希望能够为此刻度设置标签。类似这样的:非连续滑块
[--*---------*------------------O--------------]
64 128 256
有没有这种非连续滑块的内置解决方案或组件?
我想要有以下滑块,用户只能选择预定义的一组值(64,128,256,... 2048),我也希望能够为此刻度设置标签。类似这样的:非连续滑块
[--*---------*------------------O--------------]
64 128 256
有没有这种非连续滑块的内置解决方案或组件?
这里是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实现的,这是一个技巧。
哦谢谢!看起来就是我所需要的。但不幸的是,它显示的标签像1,2,3,4而不是2,4,8,16。 – 2013-05-02 21:05:29
你说的意思是,该labelFormatter没有应用。这意味着你使用了很老的版本。使用哪个版本的JFX? – 2013-05-02 21:07:25
我使用8.0b87,我看到1,2,4,8 ... – 2013-05-02 21:08:02
这似乎像你刚才标记刻度以2 ... – Randy 2013-05-02 20:46:15
权力@Randy你是绝对正确的:) – 2013-05-02 20:47:29
然后做普通摆动控制工作? – Randy 2013-05-02 20:50:37