如何更改滚动窗格(JavaFX/ScalaFX)的背景?

如何更改滚动窗格(JavaFX/ScalaFX)的背景?,scala,javafx,background-color,scalafx,Scala,Javafx,Background Color,Scalafx,我想更改滚动窗格的背景色。这是我的代码的一部分,我尝试这样做: val sp=new javafx.scene.control.ScrollPane(new Group(new Text(...))) sp.setPannable(true) sp.setStyle("-fx-background-color: blue") sp.setBackground(new Background(Array(new BackgroundFill(Color.DARKCYA

我想更改滚动窗格的背景色。这是我的代码的一部分,我尝试这样做:

    val sp=new javafx.scene.control.ScrollPane(new Group(new Text(...)))
    sp.setPannable(true)
    sp.setStyle("-fx-background-color: blue")
    sp.setBackground(new Background(Array(new BackgroundFill(Color.DARKCYAN,new CornerRadii(0),Insets(0)))))
文本显示正常,但两次更改背景颜色的尝试均无效,请使用: Scala版本2.10.3 Java HotSpotTM 64位服务器虚拟机,Java 1.8.0_05

通过检查,我发现滚动窗格下方的场景图中意外出现了两个StackPane,因此层次结构为:

滚动窗格//我创建的 StackPane//意外-剪辑内容 StackPane//意外-全尺寸内容 组//是我创建的 Text//是我创建的 如果我将StackPane-s的背景更改为,比如,-fx background color:blue with,它会生效,但不会改变滚动窗格的样式。但如何从代码中做到这一点?如果我这样做

println(sp.content())
它说

Group@567fa81a

有没有一种简单的方法可以访问堆栈窗格或更改背景?我可以插入一个大的填充矩形,但这看起来很难看,而且会使大小调整变得复杂,背景本身有什么问题?

与JScrollPane类似,JavaFX ScrollPane内部有一个名为viewport的StackPane容器。因此,要设置滚动窗格的背景,请使用此CSS规则,即设置红色背景颜色:

.scroll-pane .viewport {
    -fx-background-color: red;
}
而不是:

sp.setStyle("-fx-background-color: blue")

你能在stackpane周围张贴一个?fx背景色是给寄宿生的。带有透明度的颜色不适用于此method@Branislab拉齐克谢谢兄弟!我搜索这个答案已经很久了!
sp.setStyle("-fx-background-color: blue")