JavaFX Slider 改变宽度(厚度)

JavaFX Slider change width (thickness)

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

感谢您的建议。

在 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;
}

这将产生像这样的水平和垂直 Sliders:

无论如何,你可以参考JavaFX 8 default stylesheet (modena.css) and the JavaFX CSS Reference Guide.

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

因为我花了很多时间研究类似的问题,下面是摆脱轨道的方法,它是 "clickability":

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();
    }
});