Javafx:去掉滑块边距
我有一个“slider progress bar hybrid”,如中所述(带有值绑定的进度条顶部的不可见滑块),我的问题是滑块的左右两侧都有一个小边距,因此当滑块拇指靠近滑块末端时,进度条会关闭几个像素。我尝试将滑块和轨迹上的Javafx:去掉滑块边距,java,css,user-interface,javafx,slider,Java,Css,User Interface,Javafx,Slider,我有一个“slider progress bar hybrid”,如中所述(带有值绑定的进度条顶部的不可见滑块),我的问题是滑块的左右两侧都有一个小边距,因此当滑块拇指靠近滑块末端时,进度条会关闭几个像素。我尝试将滑块和轨迹上的-fx背景插入,-fx背景半径和-fx填充设置为零,以及滑块#setPadding(),都没有用 如何消除滑块轨迹两侧的间隙 以下是我目前的代码: StackPane seekSliderStack = new StackPane(); ProgressBar seek
-fx背景插入
,-fx背景半径
和-fx填充
设置为零,以及滑块#setPadding()
,都没有用
如何消除滑块轨迹两侧的间隙
以下是我目前的代码:
StackPane seekSliderStack = new StackPane();
ProgressBar seekProgressBar = new ProgressBar();
seekProgressBar.setMaxWidth(Double.MAX_VALUE);
Slider seekSlider = new Slider();
seekSlider.setMaxWidth(Double.MAX_VALUE);
seekSlider.valueProperty().addListener(new ChangeListener<Number>() {
public void changed(ObservableValue<? extends Number> ov,
Number oldValue, Number newValue) {
seekProgressBar.setProgress(newValue.doubleValue() / 100);
}
});
seekSlider.setValue(30);
//seekSlider.setPadding(Insets.EMPTY); // doesn't change anything
seekSliderStack.getChildren().addAll(seekProgressBar, seekSlider);
最后是一个显示间隙的小图像(白色条是滑块轨迹,红色轮廓属于滑块,蓝色部分是绿色进度条轨迹上的进度条,将滑块高度更改为进度条的一半,并使滑块轨迹可见以供演示):
哇,在发布问题几分钟后就找到了问题的解决方案: 将滑块拇指上的
-fx pref width
设置为零会使这些间隙消失,这对我很有用,因为我还是隐藏了拇指
我想,谈论(或者在本例中是写作)一个问题会让解决问题变得更容易,这是真的
.slider {
-fx-background-insets: 0;
-fx-background-radius: 0;
-fx-padding: 0;
-fx-border-insets: 0;
}
.slider .thumb {
-fx-background-color: null;
}
.slider .track {
-fx-background-color: null;
-fx-pref-height: 20px;
-fx-background-insets: 0;
-fx-background-radius: 0;
-fx-padding: 0;
-fx-border-insets: 0;
}
.progress-bar {
-fx-background-color: null;
-fx-background-insets: 0;
-fx-background-radius: 0;
}
.progress-bar .track{
-fx-background-color: null;
-fx-background-insets: 0;
-fx-background-radius: 0;
}
.progress-bar .bar {
-fx-background-color: blue;
-fx-background-insets: 0;
-fx-background-radius: 0;
}