Comment utiliser javaFX Preloader avec application autonome dans Eclipse?
Mon IDE eclipse et mon projet est un stand-alone application javaFX. (pure CS architecture OSGI cadre).
Comment utiliser Preloader donc le preloader aurait commencé avant ma principale de l'Application et se cacha plus tard?
J'ai trouvé le code
http://docs.oracle.com/javafx/2/deployment/preloaders.htm#BABGGDJG
Mais je ne sais toujours pas comment déployer le Preloader avec mon démarrage de l'Application dans un framework OSGI.
Je donne un peu de code de mon application de démarrage ci-dessous:
public class MyPrjMain extends Application {
private static Stage primaryStage;
public void start(final Stage stage) throws BusinessException {
primaryStage = stage;
init(primaryStage);
primaryStage.show();
}
}
Merci beaucoup à tous.
toute personne en charge?
OriginalL'auteur Keon Wang | 2013-02-28
Vous devez vous connecter pour publier un commentaire.
C'est une longue réponse, la réponse rapide pour les plus pressés, c'est de télécharger ce exemple de code pour l'affichage d'une page de garde pour un cours intensif de démarrage de la tâche et voir si c'est adaptable à votre situation.
Ma réponse fournit des informations générales à propos de Preloader fonctionnalité de style en JavaFX. Votre question mentionne spécifiquement
Preloader
utilisation dans une Eclipse et OSGI environnement, mais je ne vais pas directement à l'adresse que le scénario que je n'ai pas l'utilisation de ces technologies. Nous espérons que les informations générales est encore applicable pour votre scénario.1. Java a un support natif pour l'affichage d'une page d'accueil lorsque Java est commencé.
-splash:<image>
VM commutateur.Des avantages et des inconvénients:
+
La façon la plus simple pour obtenir votre application autonome pour afficher une image splash.+
Peut être affiché très rapidement=> c'est un argument d'entrée à la VM processus, de sorte que (probablement), il peut être affiché avant même la machine virtuelle elle-même a complètement initialisé.
-
A des fonctions limitées=> seulement permet l'affichage d'une image, pas d'autres préchargement des fonctionnalités telles que les rapports de l'initialisation du progrès, de l'animation, de connexion invites etc (sauf si vous faire usage de l'Api AWT)
-
Ne fonctionne pas sur toutes les plates-formes jusqu'à ce que Java 8 (voir question Mac: Impossible à utiliser-splash: avec JavaFX 2.2 et JDK 7).2. Précharge peut être utilisé pour des applications autonomes.
La JavaFX Preloader tutoriel a un exemple dans la section
9.3.4 Using a Preloader to Display the Application Initialization Progress
. Le didacticiel fournit un exemple de code exécutable dans leLongInitAppPreloader
etLongInitApp
classes (utiliser les noms de classe que j'apporte dans cette réponse comme un nom dans le didacticiel est actuellement mal).L'exemple de l'application autonome a un long temps d'initialisation et une coutume
Preloader
fournit des informations sur la progression de l'initialisation. L'échantillon simule le long de l'initialisation par le biais d'un Tâche avec unThread.sleep
appel, mais une application réelle serait de faire quelque chose comme l'établissement de connexions réseau, la récupération et l'analyse des données du réseau et de la configuration de l'application initiale Scène.Précharge ne sont pas spécifiques à applets et WebStart, mais sont principalement destinés à ces types de déploiement. L'applet et WebStart processus d'initialisation est plus complexe autonome d'initialisation de l'application, de sorte que beaucoup de le Préchargement de la documentation est consacrée à ceux des scénarios plus complexes.
3. Vous n'avez pas besoin de placer un Preloader dans un autre BOCAL.
Vous pouvez placer le
Preloader
dans le même POT que votre Application classe. Pour les grandes applications dynamiquement déployés et mis à jour sur le réseau protocoles de chargement tels que WebStart, en plaçant lePreloader
dans un autre BOCAL de sens. Pour des applications autonomes des performances réseau en fonction de l'initialisation, il n'a probablement pas faire beaucoup de différence et dans l'emballage d'étape pourrait être ignorés pour simplifier la génération et le déploiement de processus.4. Vous pouvez obtenir de Préchargement fonctionnalité de style sans l'aide d'un Preloader.
Beaucoup (pas tous) de la Preloader fonctionnalité peut être réalisé sans sous-classement Preloader.
Vous pouvez:
5b est probablement le préféré de sorte que vous n'avez pas besoin de créer plusieurs fenêtres.
Pour des exemples de cette stratégie, voir mes réponses aux questions suivantes:
Connexes exemple de code pour afficher la Progression de la Surveillance des écrans de démarrage en JavaFX sans l'aide d'un
Preloader
est:Le code ci-dessus peut être reconstruit pour utiliser un Preloader sous-classe au lieu de cela, dans ce cas, il est un cadre bien défini pour la notification de l'initialisation de l'application d'événements et de modèles de déploiement flexibles (par exemple, preloader en séparer jar) sont disponibles. Cependant l'utilisation d'un
Preloader
peut être un peu compliqué. Pour certaines implémentations, il peut ne pas être vaut le temps de comprendre lePreloader
cadre.5. WebStart Applications ont JNLP soutien aux Éclaboussures Images
(ce point est peu pertinent et juste inclus pour l'intégralité).
Je crois que webstart les applications peuvent avoir un drapeau dans leur fichier jnlp de montrer l'image de démarrage que l'webstart l'application se lance, mais je n'ai jamais été en mesure d'obtenir le drapeau de travailler dans un JavaFX 2 de la demande, uniquement dans une application Swing et même alors, il n'est pas fiable car elle permettrait d'afficher seulement la deuxième fois que l'application a été lancée.
Le problème dans OSGi, c'est que vous n'êtes pas de commencer avec votre propre Pot mais que vous démarrez le OSGi-Système. Je pense que la meilleure solution est d'utiliser une combinaison de Java-Éclaboussures et de votre propre phase de démarrage. Je crois encore que le but principal de la Preloader est et a toujours été l'Applet/Webstart cas d'utilisation.
OriginalL'auteur jewelsea
À mon humble avis un Preloader n'a de sens que lorsque vous exécutez en tant qu'applet ou webstart parce que le preloader peuvent être emballés comme un extra Jar qui est d'abord téléchargé et exécuté alors que le reste de votre application est téléchargée dans le fond.
Donc, ma suggestion serait d'ouvrir un stade au premier point dans le temps lorsque vous obtenez une Scène et, par exemple, afficher un splash.
Oui et oui, mais je voudrais utiliser Javas de soutien aux éclaboussures d'affichage de l'image et de la remplacer par une étape si l'interactivité est nécessaire - je pense aussi que le natif de l'emballeur a splash-support d'écran! Vous ne devriez pas faire usage de l'Éclipse Lanceur et les Éclaboussures de choses parce que cela par exemple conduit sur mac pour un mort de verrouillage pour le JavaFX démarrage. Je vais jeter un oeil à la splash situation pour un client dans les prochaines semaines, de sorte qu'il n'est pas improbable que vous verrez très bientôt classes dans e(fx)clipse base de code vous donnant un accès facile.
Je vais jeter un oeil à la splash situation pour un client dans les prochaines semaines, de sorte qu'il n'est pas improbable que vous verrez très bientôt classes dans e(fx)clipse base de code vous donnant un accès facile. ---dans l'attente de votre gooood nouvelles. 🙂 merci!
OriginalL'auteur tomsontom