如何创建闪屏,在JavaFX的透明背景(How to create Splash screen wi

2019-07-20 04:40发布

我想创建一个启动画面像我provded的例子。 看来,AnchorPane不允许透明的背景,我已经尝试设置的CSS AnchorPane-fx-background-color: rgba(255,0,255,0.1) ; 但白色背景仍然显示。

所有我在我的FXML文件是用包含PNG图像ImageView的一个AnchorPane

我到处找,但找不到任何解决方案,任何帮助,将不胜感激。 谢谢

Answer 1:

试试这个JavaFX的飞溅样品的问题#1创建: 设计一个闪屏(JAVA) 。 和跟进样品也提供应用程序的初始化进程的反馈。

JavaFX的确实提供了预加载从飞溅顺利移交给应用程序接口,但上面的样本不利用它。

上面也溅样品不做透明的效果,但这种对话示例展示了如何做到这一点,你可以用以前的飞溅样本结合起来,以获得您想要的效果。

透明效果通过创建的:

  1. stage.initStyle(StageStyle.TRANSPARENT)
  2. scene.setFill(Color.TRANSPARENT)
  3. 确保你的根节点不是一个不透明的正方形的矩形。

这是所有证明谢尔盖的样本。

相关问题:

  • 如何使用JavaFX的预载在Eclipse中独立的应用程序?

基于其他问题更新2016年4月

在前台预加载图像心不是。 我曾尝试stage.toFront(),但犯规的帮助。

一个新的API是在Java中8u20创建stage.setAlwaysOnTop(真) 。 我更新的链接样品初始启动画面,这有助于在一个平稳的过渡到主屏幕上的援助使用此。

对于Java8 +

对于modena.css(默认JavaFX的外观和使用Java 8感受到定义),轻微的阴影背景中引入了所有的控制(如果一个控件加载也窗格)。

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

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

如果你愿意,你可以使用CSS样式类和规则或使用setStyle调用(如表现在谢尔盖的回答),以确保该设置只适用于您的闪屏的根源,而不是所有的应用程序屏幕。

请参阅相关的:

  • 如何在JavaFX的透明现场舞台?


Answer 2:

你需要有透明的StageScene为。 Pane本身没有颜色。

public void start(Stage primaryStage) {
    Button btn = new Button("Say 'Hello World'");

    AnchorPane root = new AnchorPane();
    root.getChildren().add(btn);

    // Java 8: requires setting the layout pane background style to transparent
    // https://bugs.openjdk.java.net/browse/JDK-8092764
    // "Modena uses a non-transparent background by default"
    root.setStyle("-fx-background-color: transparent;"); 

    Scene scene = new Scene(root, 300, 250, Color.TRANSPARENT);
    primaryStage.initStyle(StageStyle.TRANSPARENT);
    primaryStage.setScene(scene);
    primaryStage.show();
}


文章来源: How to create Splash screen with transparent background in JavaFX