J'essaie de créer un écran de démarrage comme l'exemple que j'ai fourni. Il semble que AnchorPane n'autorise pas l'arrière-plan transparent, j'ai essayé de définir le CSS de AnchorPane
sur -fx-background-color: rgba(255,0,255,0.1) ;
mais l'arrière-plan blanc apparaît toujours.
Tout ce que j'ai dans mon fichier fxml est un AnchorPane avec ImageView avec contient l'image png
J'ai cherché partout mais je ne trouve aucune solution, toute aide serait appréciée. Merci
Essayez ceci exemple de splash JavaFX créé pour la question Stackoverflow: Designing a splash screen (Java) . Et un exemple de suivi qui fournit également des informations sur la progression de l'initialisation de l'application.
JavaFX offre l'interface Preloader pour un transfert en douceur du splash à l'application, mais les exemples ci-dessus ne l'utilisent pas.
Les échantillons de splash ci-dessus ne font pas non plus l'effet transparent, mais cela exemple de dialogue vous montre comment faire et vous pouvez le combiner avec les échantillons de splash précédents pour obtenir l'effet que vous voulez.
L'effet transparent est créé par:
stage.initStyle(StageStyle.TRANSPARENT)
.scene.setFill(Color.TRANSPARENT)
.Tout cela est démontré dans l'échantillon de Sergey.
Question connexe:
Mise à jour avril 2016 en fonction de questions supplémentaires
l'image du préchargeur n'est pas au premier plan. J'ai essayé stage.toFront (), mais n'aide pas.
Une nouvelle API a été créée en Java 8u20 stage.setAlwaysOnTop (true) . J'ai mis à jour le échantillon lié pour l'utiliser sur le splash initial l'écran, ce qui facilite la transition vers l'écran principal.
Pour Java8 +
Pour modena.css (la définition par défaut de l'aspect et de la convivialité JavaFX dans Java 8), un arrière-plan légèrement ombré a été introduit pour tous les contrôles (ainsi que pour les volets si un contrôle est chargé).
Vous pouvez supprimer cela en spécifiant que l'arrière-plan par défaut est transparent. Cela peut être fait en ajoutant la ligne suivante au fichier CSS de votre application:
.root { -fx-background-color: transparent; }
Si vous le souhaitez, vous pouvez utiliser des classes et des règles de style CSS ou un appel setStyle (comme illustré dans la réponse de Sergey) pour vous assurer que le paramètre ne s'applique qu'à la racine de votre écran de démarrage plutôt qu'à tous les écrans de votre application.
Voir connexes:
Vous devez avoir transparent Stage
et Scene
pour cela. Pane
lui-même n'a pas de couleur.
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();
}