繁体   English   中英

如何更改ScrollPane(JavaFX / ScalaFX)的背景?

[英]How to change the background of a ScrollPane (JavaFX/ScalaFX)?

我想更改ScrollPane的背景颜色。 这是我尝试执行的代码的一部分:

    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)))))

文本显示为OK,但是使用以下方法更改背景颜色的两种尝试均无效:
Scala版本2.10.3(Java HotSpot™64位服务器VM,Java 1.8.0_05)。

使用Scenic View进行检查,我发现两个StackPanes意外出现在ScrollPane下面的场景图中,因此层次结构为:

  1. ScrollPane //我创建的
  2. StackPane // UNEXPECTED-剪辑内容
  3. StackPane // UNEXPECTED-完整内容
  4. 组//我创建的
  5. 文字//我创建的

如果我将两个StackPane-s的背景更改为"-fx-background-color: blue" (带有Scenic View ),则它具有效果,但没有ScrollPane的样式。 但是如何从代码中做到这一点呢? 如果我做

println(sp.content())

, 它说

集团@ 567fa81a

有没有简单的方法来访问StackPanes或更改背景? 我可以“拍打”一个大的填充矩形,但这看起来很丑,并且使调整大小变得复杂,适当的背景怎么了?

JScrollPane相似,JavaFX ScrollPane在其内部具有一个称为viewportStackPane容器。 因此,使用以下CSS规则为ScrollPane设置背景(即,设置红色背景色):

.scroll-pane .viewport {
    -fx-background-color: red;
}
sp.setStyle("-fx-background: blue")

代替:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM