<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!-- NewPage --> <html lang="en"> <head> <!-- Generated by javadoc (1.8.0_77) on Fri Apr 22 13:46:54 UTC 2016 --> <title>Preloader (JavaFX 8)</title> <meta name="date" content="2016-04-22"> <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style"> <script type="text/javascript" src="../../script.js"></script> </head> <body> <script type="text/javascript"><!-- try { if (location.href.indexOf('is-external=true') == -1) { parent.document.title="Preloader (JavaFX 8)"; } } catch(err) { } //--> var methods = {"i0":10,"i1":10,"i2":10,"i3":10}; var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; var tableTab = "tableTab"; var activeTableTab = "activeTableTab"; </script> <noscript> <div>JavaScript is disabled on your browser.</div> </noscript> <!-- ========= START OF TOP NAVBAR ======= --> <div class="topNav"><a name="navbar.top"> <!-- --> </a> <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> <a name="navbar.top.firstrow"> <!-- --> </a> <ul class="navList" title="Navigation"> <li><a href="../../overview-summary.html">Overview</a></li> <li><a href="package-summary.html">Package</a></li> <li class="navBarCell1Rev">Class</li> <li><a href="class-use/Preloader.html">Use</a></li> <li><a href="package-tree.html">Tree</a></li> <li><a href="../../deprecated-list.html">Deprecated</a></li> <li><a href="../../index-all.html">Index</a></li> <li><a href="../../help-doc.html">Help</a></li> </ul> <div class="aboutLanguage">JavaFX 8</div> </div> <div class="subNav"> <ul class="navList"> <li><a href="../../javafx/application/Platform.html" title="class in javafx.application"><span class="typeNameLink">Prev Class</span></a></li> <li><a href="../../javafx/application/Preloader.ErrorNotification.html" title="class in javafx.application"><span class="typeNameLink">Next Class</span></a></li> </ul> <ul class="navList"> <li><a href="../../index.html?javafx/application/Preloader.html" target="_top">Frames</a></li> <li><a href="Preloader.html" target="_top">No Frames</a></li> </ul> <ul class="navList" id="allclasses_navbar_top"> <li><a href="../../allclasses-noframe.html">All Classes</a></li> </ul> <div> <script type="text/javascript"><!-- allClassesLink = document.getElementById("allclasses_navbar_top"); if(window==top) { allClassesLink.style.display = "block"; } else { allClassesLink.style.display = "none"; } //--> </script> </div> <div> <ul class="subNavList"> <li>Summary: </li> <li><a href="#nested.class.summary">Nested</a> | </li> <li><a href="#fields.inherited.from.class.javafx.application.Application">Field</a> | </li> <li><a href="#constructor.summary">Constr</a> | </li> <li><a href="#method.summary">Method</a></li> </ul> <ul class="subNavList"> <li>Detail: </li> <li>Field | </li> <li><a href="#constructor.detail">Constr</a> | </li> <li><a href="#method.detail">Method</a></li> </ul> </div> <a name="skip.navbar.top"> <!-- --> </a></div> <!-- ========= END OF TOP NAVBAR ========= --> <!-- ======== START OF CLASS DATA ======== --> <div class="header"> <div class="subTitle">javafx.application</div> <h2 title="Class Preloader" class="title">Class Preloader</h2> </div> <div class="contentContainer"> <ul class="inheritance"> <li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> <li> <ul class="inheritance"> <li><a href="../../javafx/application/Application.html" title="class in javafx.application">javafx.application.Application</a></li> <li> <ul class="inheritance"> <li>javafx.application.Preloader</li> </ul> </li> </ul> </li> </ul> <div class="description"> <ul class="blockList"> <li class="blockList"> <hr> <br> <pre>public abstract class <span class="typeNameLabel">Preloader</span> extends <a href="../../javafx/application/Application.html" title="class in javafx.application">Application</a></pre> <div class="block">Class that is extended to define an optional preloader for a JavaFX Application. An application may contain a preloader that is used to improve the application loading experience, especially for applications that are embedded in a browser or launched in webstart execution mode. <p> A preloader is a small application that is started before the main application to customize the startup experience. The preloader: </p> <ul> <li>gets notification of progress of loading application resources</li> <li>gets notification of errors</li> <li>gets notification of application initialization and startup</li> <li>decides when application should become visible</li> </ul> <p> The default preloader is shown on top of the application Stage, which is not visible until the preloader is visible. The preloader need to hide itself to make the application visible. Good practice is to do this no earlier than right before application.start() is called, as otherwise application itself is not visible. </p> <p> The preloader may also cooperate with the application to achieve advanced visual effects or share data (e.g. to implement login screen). The preloader gets a reference to the application and may pull data it needs for cooperation from the application if the application implements an interface that the preloader knows about and relies upon. Generally it is not recommended to design preloaders in such a way that an application would call them directly, as this will result in bad user experience if the application is signed and the preloader is not. </p> <p> If the application does not specify a preloader, then the default preloader is used. Default preloader appearance can be customized (set of parameters is TBD). </p> <p> Custom preloader implementations should follow these rules: </p> <ol> <li>there should be class extending Preloader</li> <li>classes needed for preloader need to be packaged in the separate jar. We recommend this jar to be unsigned.</li> <li>JNLP deployment descriptor should have preloader-class attribute with full name of the class as value in the javafx-desc element and jars needed for progress need to have download="progress" type</li> </ol> <p> Applications may also send custom notification to the preloader using the <a href="../../javafx/application/Application.html#notifyPreloader-javafx.application.Preloader.PreloaderNotification-"><code>notifyPreloader</code></a> method. This way a preloader may also show application initialization progress. </p> <p> Note that preloaders are subject to the same rules as other JavaFX applications including FX threading rules. In particular, the class constructor and init() method will be called on a non-FX thread and start() will be executed on the FX application thread. This also means that the application constructor/init() will run concurrently with preloader start(). </p> <p> Callbacks on preloader notification will be delivered on the FX application thread. </p> <p> Shutdown (including when stop() is called) is TBD. </p></div> <dl> <dt><span class="simpleTagLabel">Since:</span></dt> <dd>JavaFX 2.0</dd> </dl> </li> </ul> </div> <div class="summary"> <ul class="blockList"> <li class="blockList"> <!-- ======== NESTED CLASS SUMMARY ======== --> <ul class="blockList"> <li class="blockList"><a name="nested.class.summary"> <!-- --> </a> <h3>Nested Class Summary</h3> <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> <caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> <tr> <th class="colFirst" scope="col">Modifier and Type</th> <th class="colLast" scope="col">Class and Description</th> </tr> <tr class="altColor"> <td class="colFirst"><code>static class </code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../javafx/application/Preloader.ErrorNotification.html" title="class in javafx.application">Preloader.ErrorNotification</a></span></code> <div class="block">Preloader notification that reports an error.</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>static interface </code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../javafx/application/Preloader.PreloaderNotification.html" title="interface in javafx.application">Preloader.PreloaderNotification</a></span></code> <div class="block">Marker interface for all Preloader notification.</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>static class </code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../javafx/application/Preloader.ProgressNotification.html" title="class in javafx.application">Preloader.ProgressNotification</a></span></code> <div class="block">Preloader notification that reports progress.</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>static class </code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../javafx/application/Preloader.StateChangeNotification.html" title="class in javafx.application">Preloader.StateChangeNotification</a></span></code> <div class="block">A notification that signals a change in the application state.</div> </td> </tr> </table> <ul class="blockList"> <li class="blockList"><a name="nested.classes.inherited.from.class.javafx.application.Application"> <!-- --> </a> <h3>Nested classes/interfaces inherited from class javafx.application.<a href="../../javafx/application/Application.html" title="class in javafx.application">Application</a></h3> <code><a href="../../javafx/application/Application.Parameters.html" title="class in javafx.application">Application.Parameters</a></code></li> </ul> </li> </ul> <!-- =========== FIELD SUMMARY =========== --> <ul class="blockList"> <li class="blockList"><a name="field.summary"> <!-- --> </a> <h3>Field Summary</h3> <ul class="blockList"> <li class="blockList"><a name="fields.inherited.from.class.javafx.application.Application"> <!-- --> </a> <h3>Fields inherited from class javafx.application.<a href="../../javafx/application/Application.html" title="class in javafx.application">Application</a></h3> <code><a href="../../javafx/application/Application.html#STYLESHEET_CASPIAN">STYLESHEET_CASPIAN</a>, <a href="../../javafx/application/Application.html#STYLESHEET_MODENA">STYLESHEET_MODENA</a></code></li> </ul> </li> </ul> <!-- ======== CONSTRUCTOR SUMMARY ======== --> <ul class="blockList"> <li class="blockList"><a name="constructor.summary"> <!-- --> </a> <h3>Constructor Summary</h3> <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> <caption><span>Constructors</span><span class="tabEnd"> </span></caption> <tr> <th class="colOne" scope="col">Constructor and Description</th> </tr> <tr class="altColor"> <td class="colOne"><code><span class="memberNameLink"><a href="../../javafx/application/Preloader.html#Preloader--">Preloader</a></span>()</code> </td> </tr> </table> </li> </ul> <!-- ========== METHOD SUMMARY =========== --> <ul class="blockList"> <li class="blockList"><a name="method.summary"> <!-- --> </a> <h3>Method Summary</h3> <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> <tr> <th class="colFirst" scope="col">Modifier and Type</th> <th class="colLast" scope="col">Method and Description</th> </tr> <tr id="i0" class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../javafx/application/Preloader.html#handleApplicationNotification-javafx.application.Preloader.PreloaderNotification-">handleApplicationNotification</a></span>(<a href="../../javafx/application/Preloader.PreloaderNotification.html" title="interface in javafx.application">Preloader.PreloaderNotification</a> info)</code> <div class="block">Indicates an application-generated notification.</div> </td> </tr> <tr id="i1" class="rowColor"> <td class="colFirst"><code>boolean</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../javafx/application/Preloader.html#handleErrorNotification-javafx.application.Preloader.ErrorNotification-">handleErrorNotification</a></span>(<a href="../../javafx/application/Preloader.ErrorNotification.html" title="class in javafx.application">Preloader.ErrorNotification</a> info)</code> <div class="block">Called when an error occurs.</div> </td> </tr> <tr id="i2" class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../javafx/application/Preloader.html#handleProgressNotification-javafx.application.Preloader.ProgressNotification-">handleProgressNotification</a></span>(<a href="../../javafx/application/Preloader.ProgressNotification.html" title="class in javafx.application">Preloader.ProgressNotification</a> info)</code> <div class="block">Indicates download progress.</div> </td> </tr> <tr id="i3" class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../javafx/application/Preloader.html#handleStateChangeNotification-javafx.application.Preloader.StateChangeNotification-">handleStateChangeNotification</a></span>(<a href="../../javafx/application/Preloader.StateChangeNotification.html" title="class in javafx.application">Preloader.StateChangeNotification</a> info)</code> <div class="block">Indicates a change in application state.</div> </td> </tr> </table> <ul class="blockList"> <li class="blockList"><a name="methods.inherited.from.class.javafx.application.Application"> <!-- --> </a> <h3>Methods inherited from class javafx.application.<a href="../../javafx/application/Application.html" title="class in javafx.application">Application</a></h3> <code><a href="../../javafx/application/Application.html#getHostServices--">getHostServices</a>, <a href="../../javafx/application/Application.html#getParameters--">getParameters</a>, <a href="../../javafx/application/Application.html#getUserAgentStylesheet--">getUserAgentStylesheet</a>, <a href="../../javafx/application/Application.html#init--">init</a>, <a href="../../javafx/application/Application.html#launch-java.lang.Class-java.lang.String...-">launch</a>, <a href="../../javafx/application/Application.html#launch-java.lang.String...-">launch</a>, <a href="../../javafx/application/Application.html#notifyPreloader-javafx.application.Preloader.PreloaderNotification-">notifyPreloader</a>, <a href="../../javafx/application/Application.html#setUserAgentStylesheet-java.lang.String-">setUserAgentStylesheet</a>, <a href="../../javafx/application/Application.html#start-javafx.stage.Stage-">start</a>, <a href="../../javafx/application/Application.html#stop--">stop</a></code></li> </ul> <ul class="blockList"> <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> <!-- --> </a> <h3>Methods inherited from class java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> </ul> </li> </ul> </li> </ul> </div> <div class="details"> <ul class="blockList"> <li class="blockList"> <!-- ========= CONSTRUCTOR DETAIL ======== --> <ul class="blockList"> <li class="blockList"><a name="constructor.detail"> <!-- --> </a> <h3>Constructor Detail</h3> <a name="Preloader--"> <!-- --> </a> <ul class="blockListLast"> <li class="blockList"> <h4>Preloader</h4> <pre>public Preloader()</pre> </li> </ul> </li> </ul> <!-- ============ METHOD DETAIL ========== --> <ul class="blockList"> <li class="blockList"><a name="method.detail"> <!-- --> </a> <h3>Method Detail</h3> <a name="handleProgressNotification-javafx.application.Preloader.ProgressNotification-"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>handleProgressNotification</h4> <pre>public void handleProgressNotification(<a href="../../javafx/application/Preloader.ProgressNotification.html" title="class in javafx.application">Preloader.ProgressNotification</a> info)</pre> <div class="block">Indicates download progress. This method is called by the FX runtime to indicate progress while application resources are being loaded. It will not be called to deliver a ProgressNotification sent to <a href="../../javafx/application/Application.html#notifyPreloader-javafx.application.Preloader.PreloaderNotification-"><code>notifyPreloader</code></a>. <p> The implementation of this method provided by the Preloader class does nothing. </p></div> <dl> <dt><span class="paramLabel">Parameters:</span></dt> <dd><code>info</code> - the progress notification</dd> </dl> </li> </ul> <a name="handleStateChangeNotification-javafx.application.Preloader.StateChangeNotification-"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>handleStateChangeNotification</h4> <pre>public void handleStateChangeNotification(<a href="../../javafx/application/Preloader.StateChangeNotification.html" title="class in javafx.application">Preloader.StateChangeNotification</a> info)</pre> <div class="block">Indicates a change in application state. This method is called by the FX runtime as part of the application life-cycle. <p> The implementation of this method provided by the Preloader class does nothing. </p></div> <dl> <dt><span class="paramLabel">Parameters:</span></dt> <dd><code>info</code> - the state change notification</dd> </dl> </li> </ul> <a name="handleApplicationNotification-javafx.application.Preloader.PreloaderNotification-"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>handleApplicationNotification</h4> <pre>public void handleApplicationNotification(<a href="../../javafx/application/Preloader.PreloaderNotification.html" title="interface in javafx.application">Preloader.PreloaderNotification</a> info)</pre> <div class="block">Indicates an application-generated notification. This method is called by the FX runtime to deliver a notification sent via <a href="../../javafx/application/Application.html#notifyPreloader-javafx.application.Preloader.PreloaderNotification-"><code>notifyPreloader</code></a>. <p> Applications should not call this method directly, but should use <a href="../../javafx/application/Application.html#notifyPreloader-javafx.application.Preloader.PreloaderNotification-"><code>notifyPreloader</code></a> instead to avoid mixed code dialog issues. </p> <p> The implementation of this method provided by the Preloader class does nothing. </p></div> <dl> <dt><span class="paramLabel">Parameters:</span></dt> <dd><code>info</code> - the application-generated notification</dd> </dl> </li> </ul> <a name="handleErrorNotification-javafx.application.Preloader.ErrorNotification-"> <!-- --> </a> <ul class="blockListLast"> <li class="blockList"> <h4>handleErrorNotification</h4> <pre>public boolean handleErrorNotification(<a href="../../javafx/application/Preloader.ErrorNotification.html" title="class in javafx.application">Preloader.ErrorNotification</a> info)</pre> <div class="block">Called when an error occurs. <p> The implementation of this method provided by the Preloader class returns false, indicating that the default error handler should show the message to the user. </p></div> <dl> <dt><span class="paramLabel">Parameters:</span></dt> <dd><code>info</code> - the error notification describing the cause of this error</dd> <dt><span class="returnLabel">Returns:</span></dt> <dd>true if error was shown to the user by preloader and no additional visualization is needed; otherwise, false.</dd> </dl> </li> </ul> </li> </ul> </li> </ul> </div> </div> <!-- ========= END OF CLASS DATA ========= --> <!-- ======= START OF BOTTOM NAVBAR ====== --> <div class="bottomNav"><a name="navbar.bottom"> <!-- --> </a> <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> <a name="navbar.bottom.firstrow"> <!-- --> </a> <ul class="navList" title="Navigation"> <li><a href="../../overview-summary.html">Overview</a></li> <li><a href="package-summary.html">Package</a></li> <li class="navBarCell1Rev">Class</li> <li><a href="class-use/Preloader.html">Use</a></li> <li><a href="package-tree.html">Tree</a></li> <li><a href="../../deprecated-list.html">Deprecated</a></li> <li><a href="../../index-all.html">Index</a></li> <li><a href="../../help-doc.html">Help</a></li> </ul> <div class="aboutLanguage">JavaFX 8</div> </div> <div class="subNav"> <ul class="navList"> <li><a href="../../javafx/application/Platform.html" title="class in javafx.application"><span class="typeNameLink">Prev Class</span></a></li> <li><a href="../../javafx/application/Preloader.ErrorNotification.html" title="class in javafx.application"><span class="typeNameLink">Next Class</span></a></li> </ul> <ul class="navList"> <li><a href="../../index.html?javafx/application/Preloader.html" target="_top">Frames</a></li> <li><a href="Preloader.html" target="_top">No Frames</a></li> </ul> <ul class="navList" id="allclasses_navbar_bottom"> <li><a href="../../allclasses-noframe.html">All Classes</a></li> </ul> <div> <script type="text/javascript"><!-- allClassesLink = document.getElementById("allclasses_navbar_bottom"); if(window==top) { allClassesLink.style.display = "block"; } else { allClassesLink.style.display = "none"; } //--> </script> </div> <div> <ul class="subNavList"> <li>Summary: </li> <li><a href="#nested.class.summary">Nested</a> | </li> <li><a href="#fields.inherited.from.class.javafx.application.Application">Field</a> | </li> <li><a href="#constructor.summary">Constr</a> | </li> <li><a href="#method.summary">Method</a></li> </ul> <ul class="subNavList"> <li>Detail: </li> <li>Field | </li> <li><a href="#constructor.detail">Constr</a> | </li> <li><a href="#method.detail">Method</a></li> </ul> </div> <a name="skip.navbar.bottom"> <!-- --> </a></div> <!-- ======== END OF BOTTOM NAVBAR ======= --> <p class="legalCopy"><small><small><a href="https://docs.oracle.com/javase/8/docs/legal/cpyr.html">Copyright</a> (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.</small></small></p> </body> </html>