我希望有透明的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); } }
对于modena.css
(Java 8中的默认JavaFX外观定义),为所有控件(以及加载控件时的窗格)引入了轻微的阴影背景.
您可以通过指定默认背景是透明的来删除它.这可以通过将以下行添加到应用程序的CSS文件中来完成:
.root { -fx-background-color: transparent; }
这是您在代码中已有的其他设置的补充,用于初始化场景的样式和场景的背景填充.
stage.initStyle(StageStyle.TRANSPARENT); scene.setFill(Color.TRANSPARENT);
注意:在问题的示例代码中,创建了一个附加阶段(initStage),而不是使用start方法的传入阶段.传入的阶段可以由代码直接初始化,使用和显示,而不是创建额外的initStage.
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)中的数字来更改颜色