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;
}
这将产生像这样的水平和垂直 Slider
s:
无论如何,你可以参考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();
}
});
我的问题是默认值 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;
}
这将产生像这样的水平和垂直 Slider
s:
无论如何,你可以参考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();
}
});