JavaFX8中的ScrollPane默认有个灰色边框,如下图:

20150912165731

不管基于什么想法,我现在想去掉这个灰色边框(注意选中时灰色边框会变成蓝色),以下是去掉ScrollPane边框的3种方式:

1) JavaFX8中带有一个名为edge-to-edge的class,可以直接实现无边框效果

sp.getStyleClass().add("edge-to-edge");

默认的灰色边框和选中时蓝色边框都会消失,效果非常好

20150912170007

这种方法可能有风险,因为不属于API的范畴,不知道Oracle啥时候就改了

2)  自定义CSS去掉边框-方法1

.noborder{
    -fx-padding: 0;
}
sp.getStyleClass().add("noborder");

默认的灰色边框会消失

20150912170007

但是选中时的蓝色边框不会消失(整体有变浅,但是右边的ScrollBar的颜色和整体颜色不搭,仅仅看整体的颜色也可以接受)

20150912170238

在padding的设置后面再补一个background-insets的设置

.noborder{
    -fx-padding: 0;
    -fx-background-insets: 0;
}

完美

20150912170007

3) 自定义CSS去掉边框-方法2

.noborder{
    -fx-background-color: transparent;
    -fx-control-inner-background: transparent;
}

实际上只要第一句background-color就生效了,stackoverflow上说第二句有个什么其他的作用

 

本文参考了stackoverflow上大神的回复:http://stackoverflow.com/questions/17540137/javafx-scrollpane-border-and-background

1 对 “JavaFX8中去掉ScrollPane边框的3种方式”的想法;

发表评论

邮箱地址不会被公开。 必填项已用*标注