当前位置: 首页 > 知识库问答 >
问题:

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

商宝
2023-03-14

我想改变滚动条的背景颜色。这是我的代码的一部分,我尝试这样做:

    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 version 2.10.3(JavaHotSpot(TM)64位服务器VM,Java1.8.0_05)。

检查与风景视图,我发现两个StackPanes意外地出现在场景图下面的ScrollPane,所以层次结构是:

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

如果我将StackPane-s中的任何一个的背景更改为“-fx-background-color: blue”(带有风景视图),它会产生效果,但不是ScrollPane的样式。但是如何从代码中做到这一点呢?如果我这样做

println(sp.content())

,它说

Group@567fa81a

有没有一种简单的方法来访问StackPanes或更改背景?我可以“拍打”一个大填充的矩形,但这似乎很丑陋,并且使调整大小变得复杂,背景本身有什么问题?

共有2个答案

诸葛柏
2023-03-14
sp.setStyle("-fx-background: blue")

而不是:

sp.setStyle("-fx-background-color: blue")
阳宾实
2023-03-14

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

.scroll-pane .viewport {
    -fx-background-color: red;
}
 类似资料:
  • 使用javafx场景构建器,我创建了一个TableView,其中几乎没有可编辑的列和不可编辑的列。如何为不可编辑的列设置CSS样式,使整个列变灰。我创建了一个如下所示的样式类,并将其映射到javafx场景构建器中的表列。但它不起作用。 在论坛上搜索,找不到设置tableview列样式的解决方案。你能建议一种方法吗?

  • 我有一个透明图像(PNG)的ImageView,因此图像不会填充图像视图的完整矩形,当鼠标悬停在图像视图上时,我想只更改图像视图矩形的背景颜色。在css中我是怎么做的?图像视图节点是否具有属性-fx-背景颜色?我试过了,但对我来说不起作用。我有一个链接到的css文件。FXML

  • 我试图将文本字段“Colorbox0”的背景色更改为“Value0”,但它去掉了边框。 以下是我代码的简化版本: 非常感谢您的帮助 谢谢

  • 我有一个带有一些TextArea元素的GUI来显示信息。由于GUI将对keyevents做出反应,我在场景元素中添加了一个EventHandler。因为我不想为每个文本区域添加一个EventHandler,所以我禁用了它们以防止它们聚焦,因为这样场景的EventHandler就不再工作了。现在我有一个问题:文本显示为灰色,不再是黑色,尽管我在css文件中更改了它。你知道为什么文本不是黑色的吗?我该

  • 在javaFX ScrollPane中。它滚动得很慢..有什么方法可以提高它吗?我到处都找过了,但没有运气..我找到了一些关于ListView的线索.. 示范:

  • 问题内容: 我已经将JOptionPane添加到我的应用程序中,但是我不知道如何将背景颜色更改为白色? 问题答案: 通过使用类 要么