Как создать пользовательский экран загрузки в JavaFX?

Я хотел бы создать пользовательский экран загрузки для приложения JavaFX. Не хочу, чтобы пользователь видел иконку кофейной чашки Java, я хочу разместить там свою графику!

Я узнал, как предоставить статическое изображение или даже анимированный GIF, но меня больше интересует экран, похожий на Flash, где я могу указать, как выглядит состояние изображения при определенных процентах.

Любые идеи?

11.12.2008 22:24:17
Это должно быть легко выполнимо, если вы используете java web-start для запуска приложения. В файле JNLP, можно отметить: <icon href="splashIcon_64x64.png" kind="splash"/> <icon href="shortcutIcon_32x32.png" kind="default"/>. Это под <information>тегом.
Aspirant 9.12.2013 18:54:13
4 ОТВЕТА

Если вы настраиваете все так, как показано в этой записи блога , похоже, что ответ будет «нет» - загрузка графика является лишь частью общих параметров, которые передаются апплету. Поскольку этим апплетом может быть любой код Java (не только javaFX), нет способа связать ваш пользовательский рендер.

2
16.06.2009 19:12:16

Для JavaFX2 вы можете установить пользовательский предварительный загрузчик. Вы полностью контролируете сцену. Я не использовал их лично, но это может быть то, что вы хотите. http://docs.oracle.com/javafx/2/deployment/preloaders.htm

3
14.08.2013 18:04:17

Для изменения значка кофейной чашки:

stage.getIcons().add(new Image("images/myimage.png"));

и вот ссылка на очень четкий экран предварительного загрузчика и удивительный CSS: http://docs.oracle.com/javafx/2/best_practices/jfxpub-best_practices.htm

0
19.05.2014 02:05:24

Вы должны использовать таймер Java:

Timer tm= new Timer(); 
Stage ilk;
int count;

public  void check() {      

    ilk=new Stage();
    TimerTask mission;

    gorev = new TimerTask() {
        @Override
        public void run() {

            Group root = new Group();     

            Scene scene;
            scene = new Scene(root, 960, 540);
            scene.setFill(Color.BLACK);
            ilk.setScene(scene);
            ilk.setTitle("Splash Screen"); 

            sayac++;
            if(count==5){
                tm.cancel();
                ilk.show();  
            }
        }
    };
    tm.schedule(mission, 0, 2000);
}
2
29.06.2018 15:02:00