Javafx滑块拇指
在javafx中有没有办法在滑块拇指上显示整数?只是好奇,因为我正在尝试创建一个干净的UI,但在滑块thumb上显示整数时找不到任何东西。解决此需求的一种方法是访问thumb节点并包含文本/标签节点。请查看下面的演示,了解我的意思 您可以调整拇指填充和文本大小以进行微调 更新: 如果您不想依赖于访问皮肤,您确实可以实现/初始化滑块,如下所示。这样,您可以创建自定义滑块,并可以在多个位置重复使用Javafx滑块拇指,java,javafx,slider,Java,Javafx,Slider,在javafx中有没有办法在滑块拇指上显示整数?只是好奇,因为我正在尝试创建一个干净的UI,但在滑块thumb上显示整数时找不到任何东西。解决此需求的一种方法是访问thumb节点并包含文本/标签节点。请查看下面的演示,了解我的意思 您可以调整拇指填充和文本大小以进行微调 更新: 如果您不想依赖于访问皮肤,您确实可以实现/初始化滑块,如下所示。这样,您可以创建自定义滑块,并可以在多个位置重复使用 Slider slider = new Slider(1, 10, 3) { Text te
Slider slider = new Slider(1, 10, 3) {
Text text;
@Override
protected void layoutChildren() {
super.layoutChildren();
if (text == null) {
text = new Text(((int) getValue()) + "");
valueProperty().addListener((obs, old, val) -> text.setText(val.intValue() + ""));
StackPane thumb = (StackPane) lookup(".thumb");
thumb.setPadding(new Insets(10));
thumb.getChildren().add(text);
}
}
};
需要注意的是:上面隐式依赖于
滑块的蒙皮作为默认蒙皮。更新了我的答案w.r.t依赖于蒙皮。这仍然隐式依赖于默认蒙皮。是皮肤添加了用作拇指的StackPane
,并为其提供了.thumb
样式类。我并不是说这是一个问题,特别是如果OP继续使用默认皮肤(假设JavaFXCSS参考指南中的内容被认为是公共和稳定的API,但请注意,只说。thumb
是一个区域
)。但是如果OP使用一个库,用它自己的实现替换皮肤,那么上面的代码可能会中断。我相信如果他打算使用自己的皮肤实现,这将使事情变得更直接,他可以完全控制所有内部,并且可以自定义他喜欢的滑块。@slaw,对不起,我忽略了你评论中的“图书馆”一词。我同意你的观点,如果皮肤有不同的构建拇指节点的方法,那么实现可能会改变。谢谢:)
Slider slider = new Slider(1, 10, 3) {
Text text;
@Override
protected void layoutChildren() {
super.layoutChildren();
if (text == null) {
text = new Text(((int) getValue()) + "");
valueProperty().addListener((obs, old, val) -> text.setText(val.intValue() + ""));
StackPane thumb = (StackPane) lookup(".thumb");
thumb.setPadding(new Insets(10));
thumb.getChildren().add(text);
}
}
};