JavaFX滑块更改宽度(厚度)

时间:2016-07-12 08:16:32

标签: java css javafx slider javafx-8

我的问题是默认Slider太薄了。 有没有办法让Slider(宽度)更大?

感谢您的建议。

2 个答案:

答案 0 :(得分:6)

在JavaFX中,大多数样式都可以通过CSS完成。

您可以在CSS文件中使用.slider .track.slider .thumb样式类。在此样式类中,您可以使用-fx-pref-width-fx-pref-height属性:

.slider .track {
    -fx-pref-height:20;
}

.slider:vertical .track {
    -fx-pref-width:20;
}

.slider .thumb {
    -fx-pref-height: 30;
    -fx-pref-width: 30;
}

或者您可以使用-fx-padding属性:

.slider .track {
    -fx-padding: 10;
}

.slider .thumb {
    -fx-padding: 15;
}

这将生成横向和纵向Slider,如下所示:

enter image description here

在任何情况下,您都可以参考JavaFX 8 default stylesheet (modena.css)JavaFX CSS Reference Guide

您还可以使用official tutorial关于使用CSS设置JavaFX样式。

答案 1 :(得分:1)

因为我花了很多时间来研究类似的问题,所以这就是你如何摆脱轨道,它是“可点击性”:

CSS:
.slider .track {
    visibility: hidden;
}

// You'll probably want this in the code also to swallow all keyboard events:

slider.addEventFilter(KeyEvent.ANY, new EventHandler<KeyEvent>() {
    @Override
    public void handle(KeyEvent event) {
        System.out.println("KeyEvent NO!");
        event.consume();
    }
});