gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 02:38:35 25 4
gpt4 key购买 nike

我想要透明的进度指示器,这是不确定的。

这是代码,它显示灰色背景状态/场景。
我想要完全透明。

我尝试了以下代码,但它显示了不透明的背景阶段。

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);
}

}

output

最佳答案

对于 modena.css (Java 8 中默认的 JavaFX 观感定义),为所有控件(如果加载了控件,也为 Pane )引入了轻微的阴影背景。

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

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

这是对代码中已有的用于初始化舞台样式和场景背景填充的其他设置的补充。
stage.initStyle(StageStyle.TRANSPARENT);
scene.setFill(Color.TRANSPARENT);

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

关于javafx - 如何在javafx中制作透明场景和舞台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34033119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com