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

标签 scala javafx background-color 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)))))

文本显示正常,但两次尝试更改背景颜色都没有效果,使用:
Scala 版本 2.10.3(Java HotSpot(TM) 64 位服务器 VM、Java 1.8.0_05)。

使用Scenic View进行检查,我发现ScrollPane下面的场景图中意外出现了两个StackPane,所以层次结构是:

  1. ScrollPane//我创建的
  2. StackPane//意外 - 剪辑内容
  3. StackPane//意外 - 全尺寸内容
  4. 组//我创建的
  5. 文本//我创建的

如果我将任一 StackPane-s 的背景更改为 "-fx-background-color: blue" (使用 Scenic View ),它会起作用,但不会ScrollPane 的样式。但如何从代码中做到这一点呢?如果我这样做

println(sp.content())

,它说

Group@567fa81a

是否有一种简单的方法来访问 StackPanes 或更改背景?我可以“拍入”一个大的填充矩形,但这看起来很难看并且使调整大小变得复杂,背景有什么问题吗?

最佳答案

JScrollPane 类似,JavaFX ScrollPane 内部有一个名为 viewportStackPane 容器。因此,要为 ScrollPane 设置背景,请使用此 CSS 规则(即设置红色背景颜色):

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

关于scala - 如何更改 ScrollPane (JavaFX/ScalaFX) 的背景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25450788/

相关文章:

java - 无法将数据添加到 javaFX 中的表

JavaFX 同时多个 Controller

javascript - getComputedStyle 给出 "transparent"而不是实际的背景颜色

Scala:将逆变类型作为隐式参数传递不会选择最近的父类(super class)型?

scala - 带有 Gradle 的 Lagom - java.lang.NoClassDefFoundError : scala/Function1$class

excel - 如何使用savedilogue javafx保存文件

excel - 使用公共(public) VBA 函数更改 Excel 中的单元格颜色背景 - 不是 VBA 程序员

scala - 如何在fs2中 "split"流?

scala - Maven 未正确构建 Scala 项目

html - css - div 背景颜色不显示