当前位置:  开发笔记 > 后端 > 正文

如何在javafx中制作透明场景和舞台?

如何解决《如何在javafx中制作透明场景和舞台?》经验,为你挑选了2个好方法。

我希望有透明的progressindicator,这是无限期的.

这是代码,它显示灰色背景状态/场景.我希望完全透明.

我尝试了下面的代码,但它显示了不透明的后台阶段.

package application;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.ProgressIndicator;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.stage.StageStyle;

    public class Main extends Application {

        @Override
        public void start(Stage stage) {
            /*
             * 
             * my css file content:
             * 
             * .progress-indicator .indicator { -fx-background-color: transparent;
             * -fx-background-insets: 0; -fx-background-radius: 0;
             * 
             * } .progress-indicator { -fx-progress-color: green ; }
             * 
             * 
             * 
             */
            Stage initStage = new Stage();

            initStage.initStyle(StageStyle.TRANSPARENT);
            ProgressIndicator loadProgress = new ProgressIndicator();
            loadProgress.setSkin(null);
            loadProgress.setPrefWidth(50);
            VBox box = new VBox();
            box.getChildren().add(loadProgress);
            final Scene scene = new Scene(box, 150, 150);

            scene.setFill(Color.TRANSPARENT);

            initStage.setScene(scene);
            scene.getStylesheets().add("application.css");

            initStage.show();

        }

        public static void main(String[] args) {
            launch(args);
        }

    }

产量



1> jewelsea..:

对于modena.css(Java 8中的默认JavaFX外观定义),为所有控件(以及加载控件时的窗格)引入了轻微的阴影背景.

您可以通过指定默认背景是透明的来删除它.这可以通过将以下行添加到应用程序的CSS文件中来完成:

.root { -fx-background-color: transparent; }

这是您在代码中已有的其他设置的补充,用于初始化场景的样式和场景的背景填充.

stage.initStyle(StageStyle.TRANSPARENT);
scene.setFill(Color.TRANSPARENT);

注意:在问题的示例代码中,创建了一个附加阶段(initStage),而不是使用start方法的传入阶段.传入的阶段可以由代码直接初始化,使用和显示,而不是创建额外的initStage.



2> Sona..:

stage.initStyle(StageStyle.TRANSPARENT);
这是用于隐藏顶部栏(最小化,还原并关闭)

scene.setFill(Color.TRANSPARENT);
这是针对框架颜色的(您可以将TRANSPARENT替换为任何颜色的绿色,黄色,红色,蓝色...),
但是对我来说,如果您能理解我的话,我希望使用玻璃视图,
并使用不同的颜色,
因此解决方案是

 primaryStage.setOpacity(0.2);


数字0.2在0和1之间,
0是隐藏的,而1是正常形式,但是在数字之间是透明的,
所以选择您的数字并运行程序,看看是否正是您想要的
代码。

 primaryStage.setFullScreen(true);

并在css文件中执行此操作

.root { -fx-background-color:rgba(0,0,0,1); }

您可以通过更改rgba(0,0,0,1)中的数字来更改颜色

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有