【问题标题】:Transparent Stage with transparent ScrollPane is not transparent具有透明 ScrollPane 的透明舞台不透明
【发布时间】:2016-06-13 21:53:20
【问题描述】:

这里我有一个方法,它生成一个应该是透明的,带有一堆矩形的 ScrollPane 的舞台。

private Stage createStage()
    {
        Stage stage = new Stage(StageStyle.TRANSPARENT);

        FlowPane flw = new FlowPane();
        flw.setBackground(Background.EMPTY);

        Random gen = new Random(5);
        for (int i = 0; i < 50; i++)
        {
            int size = 50 + gen.nextInt(50);
            flw.getChildren().add(new Rectangle(size, size, Color.web("rgb(" + gen.nextInt(255) + "," + gen.nextInt(255) + "," + gen.nextInt(255) + ")")));
        }

        ScrollPane root = new ScrollPane(flw);
        root.setMaxSize(500, 500);
        root.setBackground(Background.EMPTY);

        Scene scene = new Scene(root, Color.TRANSPARENT);
        stage.setScene(scene);

        return stage;
    }

这是调用 Stage.show() 时上面代码的输出:

这个阶段会在一个新窗口中弹出,但如您所见,背景是白色的,无法透视。我感觉 ScrollPane 或 FlowPane 有问题,因为只有 StageStyle.TRANSPARENT 和一个 Square 会弹出没有任何白色背景的正方形。

我做错了什么?我已经尝试过:

Pane.setBackground(new Background(new BackgroundFill(Color.TRANSPARENT, CornerRadii.EMPTY, Insets.EMPTY)));

【问题讨论】:

    标签: java javafx


    【解决方案1】:

    这是由于您的ScrollPane 的视口没有收到透明背景

    如果你应用以下css:

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

    在您提供的代码之上,您会得到以下内容:


    您需要将样式表添加到您的项目和场景中:

    例如,如果样式表在 src 目录中

    scene.getStylesheets().add("stylesheet.css");
    

    我更喜欢添加一个 CSS 目录,以便以后可以使用更具体的样式表:

    scene.getStylesheets().add("CSS/stylesheet.css");
    

    不要忘记,如果您从 jar 启动,则需要使用 toExternalForm()

    添加样式表后,您可以通过使用 css 实现它们来减少一些用于样式设置的 Java 代码行,这应该使您的代码更易于阅读

    【讨论】:

    • 知道如何:A) 不使用 CSS 或 B) 以 myScrollpane.setStyle(StringHere); 的形式进行吗?
    • 好吧,我承认并制作了一个 CSS 文件来实现这种格式。非常感谢你的帮助。如果您能详细说明其他可能的方式,我将不胜感激。
    • 你可以阅读this,这是一种替代方案,但当 CSS 处理得很好时,我不推荐它
    猜你喜欢
    • 2012-04-10
    • 2015-05-12
    • 2013-01-24
    • 2012-03-28
    • 2012-05-26
    • 2017-12-17
    • 2011-06-07
    • 1970-01-01
    • 2021-03-18
    相关资源
    最近更新 更多