Spróbuj JavaFX splash sample utworzony na pytanie Stackoverflow: Designing a splash screen (java). Oraz follow up sample, która zapewnia również informację o postępie procesu inicjalizacji aplikacji.
JavaFX oferuje interfejs Preloader dla płynnego transferu z splash do aplikacji, ale powyższe próbki nie wykorzystują go.
Powyższe próbki rozprysku również nie dają efektu przezroczystości, ale ten dialog sample pokazuje, jak to zrobić i można połączyć go z poprzednimi próbkami rozpryskowymi, aby uzyskać pożądany efekt.
Efekt przezroczysty jest tworzony przez:
stage.initStyle(StageStyle.TRANSPARENT)
.
scene.setFill(Color.TRANSPARENT)
.
- Zapewnienie węzła głównego nie jest nieprzezroczystym kwadratowym prostokątem.
Wszystko to zostało zademonstrowane w próbce Siergieja.
Powiązane pytanie:
Aktualizacja kwietnia 2016 na podstawie dodatkowych pytań
preloader obraz isnt na pierwszym planie. Próbowałem stage.toFront(), ale nie pomaga.
Nowy interfejs API został utworzony w języku Java 8u20 stage.setAlwaysOnTop(true). Zaktualizowałem linked sample, aby użyć tego na początkowym ekranie powitalnym, co pomaga w płynniejszym przejściu do głównego ekranu.
Dla Java8 +
Dla modena.css (domyślnie JavaFX wyglądać i czuć się definicję w Java 8), niewielkie szare został wprowadzony do wszystkich elementów sterujących (a także do Tafle gdy kontrola jest ładowany).
Możesz usunąć to, określając, że domyślne tło jest przezroczyste. Można to zrobić dodając następującą linię do pliku CSS danej aplikacji:
.root { -fx-background-color: transparent; }
Jeśli chcesz, możesz użyć klas stylów CSS i zasady lub połączenia setStyle (co wykazano w odpowiedzi Sergey), aby upewnić się, że ustawienia dotyczy tylko katalogu głównego ekranu powitalnego, a nie wszystkich ekranów aplikacji.
zobacz sekcję:
+1 za wzmiankę o Preloaderze – Puce
Dzięki chłopaki! Obie odpowiedzi są dobre, ale "scene.setFill (Color.TRANSPARENT)." Nie musisz określać szerokości i wysokości sceny – francisOpt
Wystąpił milisekundowy ruch z tłem widocznym po pokazaniu sceny. Udało mi się rozwiązać ten problem, wywołując: 'root.setCache (true); root.setCacheHint (CacheHint.SPEED); '_ (gdzie root to instancja nadrzędna) _. – stuchl4n3k