javafxpreloader

Cannot set stage to transparent in Preloader


I am trying to create a simple splash screen. In fact I have a stackpane with an image as background. I do not want to show the default javafx decorations.

So I tried StageStyle.TRANSPARENT but it makes the whole thing transparent. On the other hand StageStyle.UNDECORATED show the image but with a white background. Here is the code in my start method.

public class SplashScreen extends Preloader {

    private Stage stage;  

    @Override
    public void start(Stage stage) throws Exception {
    
        this.stage = stage;        
        StackPane root = (StackPane) FXMLLoader.load(getClass().getClassLoader().getResource("layouts/splash.fxml"));        
        Scene scene = new Scene(root, 690, 380,true, SceneAntialiasing.BALANCED);
        scene.setFill(Color.TRANSPARENT);
        stage.initStyle(StageStyle.TRANSPARENT);
        stage.setScene(scene);
        stage.show();
    
    }
...

I am using java 11.0.8 and javafx 14


Solution

  • JavaFX 15 fixed this. Seems it was a bug.