Comment créer de l'écran de démarrage avec un fond transparent en JavaFX
Je suis en train de créer un écran de démarrage, comme l'exemple que j'ai provded.
Il semble que AnchorPane ne permet pas de fond transparent, j'ai essayé de réglage de la css de la AnchorPane
à -fx-background-color: rgba(255,0,255,0.1) ;
mais le fond blanc apparaît toujours.
Tout ce que j'ai dans mon fichier fxml est un AnchorPane avec ImageView à contenir l'image png
J'ai cherché partout mais ne trouve pas de solution, toute aide serait appréciée. Grâce
Vous devez vous connecter pour publier un commentaire.
Essayer cette JavaFX splash échantillon créé pour le Stackoverflow question: La conception d'un écran de démarrage (java). Et un le suivi de l'échantillon qui fournit aussi de l'initialisation de l'application des progrès de la rétroaction.
JavaFX offre la Preloader interface pour le transfert en douceur contre les éclaboussures à l'application, mais les échantillons ci-dessus ne font pas usage de il.
Le démarrage de l'exemple ci-dessus, aussi, ne pas faire l'effet transparent, mais ce exemple de boîte de dialogue vous montre comment le faire et vous pouvez les combiner avec la précédente splash échantillons pour obtenir l'effet que vous voulez.
La transparence de l'effet créé par:
stage.initStyle(StageStyle.TRANSPARENT)
.scene.setFill(Color.TRANSPARENT)
.Qui est démontré dans Sergey de l'échantillon.
Liés à la question:
Mise à jour Avril 2016 fondée sur d'autres questions
Une nouvelle API a été créée en Java 8u20 scène.setAlwaysOnTop(vrai). J'ai mis à jour le lié échantillon de l'utiliser sur l'écran de démarrage initiale, ce qui permet de faciliter une transition en douceur vers l'écran principal.
Pour Java8+
Pour modène.css (la valeur par défaut JavaFX regarder et se sentir définition dans Java 8), un léger fond grisé a été introduit pour tous les contrôles (et aussi pour les volets si un contrôle est chargé).
Vous pouvez le supprimer en précisant que l'arrière-plan par défaut est transparent. Cela peut être fait en ajoutant la ligne suivante à votre application fichier CSS:
Si vous le souhaitez, vous pouvez utiliser le style CSS des règles et des classes ou un setStyle appel (comme démontré dans Sergey réponse) pour s'assurer que le paramètre s'applique uniquement à la racine de votre écran de démarrage plutôt que l'ensemble de votre application écrans.
Voir:
scene.setFill(Color.TRANSPARENT).
vous n'avez pas besoin de spécifier la largeur et la hauteur de la scèneroot.setCache(true); root.setCacheHint(CacheHint.SPEED);
(d'où la racine est le Parent de l'instance).Vous devez faire preuve de transparence
Stage
etScene
pour que.Pane
lui-même n'a pas une couleur.