Задержка между экраном-заставкой Java и загрузкой экрана приложения

#java #jnlp #javafx-2

#java #jnlp #javafx-2

Вопрос:

У меня есть настольное приложение JavaFX 2.0, которое я намерен запустить через JWS, используя файл jnlp. Проблема, с которой я сталкиваюсь, заключается в том, что между исчезновением заставки java по умолчанию и загрузкой моего приложения проходит значительное количество времени. Тем временем пользователю остается гадать, что происходит. Есть ли способ, которым я могу сделать этот процесс загрузки более удобным для пользователя и отображать / информировать о том, что происходит, до того, как мое приложение действительно отобразится? Я попытался использовать предварительный загрузчик, как описано в статье о развертывании JavaFX:http://download.oracle.com/javafx/2.0/deployment/preloaders.htm#BABCDIHD, но это, похоже, тоже не помогает. Вот как выглядит мой файл JNLP:

 <?xml version="1.0" encoding="UTF-8"?>  
<jnlp spec="1.0 "  xmlns:jfx="http://javafx.com" codebase="file:///C:/Program Files/HP/Pulse/PulseLite"href="iMonLauncher.jnlp">    
    <information>   
        <title>iMonLauncher</title>  
        <vendor>Administrator</vendor>  
        <homepage href="file:///C:/Program Files/HP/Pulse/PulseLite"/>  
        <description>iMonLauncher</description> 
        <offline-allowed/>   
        </information>     
        <security>       
        <all-permissions/> 
    </security>
     <resources os="Windows" arch="x86">
        <jfx:javafx-runtime version="2.0 "  
        href="http://download.oracle.com/otn-pub/java/javafx/javafx-windows-i586__Vlatest.exe "/>
     </resources>
     <resources os="Windows" arch="x64">
        <jfx:javafx-runtime version="2.0 " href="http://download.oracle.com/otn-pub/java/javafx/javafx-windows-x64__Vlatest.exe "/>
      </resources> 
    <resources> 
        <j2se version="1.6 " href="http://java.sun.com/products/autodl/j2se"/>  
        <jar href="iMon.jar" size="593908"/>            
        <jar href="lib/iMonPreloader.jar" size="4004" download="progress" />            
        <jar href="lib/ibase-core.jar" size="200674"/>    
        <jar href="lib/ibase-fx.jar" size="190545"/>      
        <jar href="lib/imonDB.jar" main="true" size="141462"/>    

    </resources>      
    <application-desc name="iMon" main-class="imon.Main" >   </application-desc>    
    <jfx:javafx-desc  width="800" height="600" main-class="imon.Main"  name="iMon"  
                        preloader-class="imon.MyPreloader"/><update check="background"/>    
</jnlp> 
  

Заранее благодарю за все предложения и помощь.

Ответ №1:

Выполняете ли вы какие-либо сложные операции перед stage.show() в вашем классе приложений?

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