我想更改 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,所以层次结构是:
- ScrollPane//我创建的
- StackPane//意外 - 剪辑内容
- StackPane//意外 - 全尺寸内容
- 组//我创建的
- 文本//我创建的
如果我将任一 StackPane-s 的背景更改为 "-fx-background-color: blue"
(使用 Scenic View ),它会起作用,但不会ScrollPane 的样式。但如何从代码中做到这一点呢?如果我这样做
println(sp.content())
,它说
Group@567fa81a
是否有一种简单的方法来访问 StackPanes 或更改背景?我可以“拍入”一个大的填充矩形,但这看起来很难看并且使调整大小变得复杂,背景有什么问题吗?
最佳答案
与 JScrollPane
类似,JavaFX ScrollPane
内部有一个名为 viewport
的 StackPane
容器。因此,要为 ScrollPane
设置背景,请使用此 CSS 规则(即设置红色背景颜色):
.scroll-pane .viewport {
-fx-background-color: red;
}
关于scala - 如何更改 ScrollPane (JavaFX/ScalaFX) 的背景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25450788/