设置不透明度ScrollPane
问题描述:
我有一个GridPane的ScrollPane内的按钮。当所需数量的按钮不足以填充ScrollPane的最大尺寸时,它看起来像下面的图像。我需要将此空白点设置为包含它的窗格的背景颜色。设置不透明度ScrollPane
我试图网格的背景色设置为相同的颜色,这包含它的背景窗格中的,但它只是颜色的按钮行。如果我试图将ScrollPane的不透明度设置为0,它也会设置按钮的不透明度,所以即使设置了按钮之后的不透明度,我也看不到任何东西。
我该怎么做?
.
.
.
GridPane grid = new GridPane();
int i=0;
for (int r = 0; r <= new Double(this.buttons.size()/BUTTONS_LINE).intValue(); r++) {
for (int c = 0; c < BUTTONS_LINE; c++) {
if(i < this.buttons.size()){
grid.add(this.buttons.get(i), c, r);
i++;
}else{
break;
}
}
}
ScrollPane spane = new ScrollPane(grid);
grid.getStyleClass().add("grid");
grid.setPrefWidth(0.2*Screen.getMainScreen().getWidth());
spane.getStyleClass().add("scrollPane");
/*spane.setOpacity(0);
grid.setOpacity(1);
for(int j=0; j<grid.getChildren().size();j++){
grid.getChildren().get(j).setOpacity(1);
}*///When I try this, buttons aren't visible neither
spane.setMaxSize(0.2*Screen.getMainScreen().getWidth(), 0.2*Screen.getMainScreen().getHeight());
.
.
.
而CSS:
.scrollPane{
-fx-background-color: #afafaf;
-fx-control-inner-background: #afafaf;
}
.grid{
-fx-background-color:#afafaf;
}
答
发生这种情况,因为你看到的是滚动条窗格视口的高度实际上是scrollpane的view-port
。您需要将背景颜色应用于视图端口。
.scrollPane > .viewport {
-fx-background-color: #afafaf;
}
答
尝试迫使窗格至少是与
grid.minHeightProperty().bind(Bindings.createDoubleBinding(() ->
spane.getViewportBounds().getHeight(), spane.viewportBoundsProperty());
谢谢你的工作,你知道我在哪里可以找到关于这个窗口的“视图端口”的文档?我从来没有听说过 – Juan 2015-03-25 14:14:11
不幸的是,没有关于这个(或者我知道的)的文档。但是你可以通过[JavaFX的源代码](http://hg.openjdk.java.net/openjfx/8u40/rt/file/eb264cdc5828/modules/)或通过[Modena css](http:// hg.openjdk.java.net/openjfx/8u40/rt/file/tip/modules/controls/src/main/resources/com/sun/javafx/scene/control/skin/modena/modena.css)找到styleclass的文件用于风格他们。此外,您还可以使用[SceneBuilder中的CSS分析器](http://docs.oracle.com/javase/8/scene-builder-2/user-guide/stylesheet-support.htm#JSBRG150)来诊断CSS样式的组件 – ItachiUchiha 2015-03-25 14:24:49