FAQ JavaFXConsultez toutes les FAQ
Nombre d'auteurs : 4, nombre de questions : 507, dernière mise à jour : 2 novembre 2016 Ajouter une question
Cette FAQ a été réalisée à partir des questions fréquemment posées sur le forum JavaFX de http://java.developpez.com ainsi que l'expérience personnelle des auteurs.
Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose sont correctes. Les auteurs font leur maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez nous aider en devenant rédacteur, lisez ceci.
Sur ce, nous vous souhaitons une bonne lecture.
- Comment développer pour Raspberry Pi ?
- Quels sont les prérequis pour développer pour Raspberry Pi ?
- Comment configurer une JVM distante dans NetBeans ?
- Comment créer un projet JavaFX pour Raspberry Pi dans NetBeans ?
- Comment lancer un projet JavaFX sur Raspberry Pi depuis NetBeans ?
- Comment quitter mon application sur Raspberry Pi ?
- Pourquoi est-ce que mon application ne prend pas toute la taille de la zone d'affichage ?
Note : le support de JavaFX sur Raspberry Pi est encore en phase préliminaire et expérimentale. Le code présenté ici peut ne pas fonctionner correctement ou demander à être modifié pour s'adapter aux dernières évolutions du port de JavaFX pour plateformes ARM.
En fait, vous n'allez pas développer directement sur Raspberry Pi : vous allez développer et compiler vos applications sur votre machine de bureau ou un portable. C'est aussi sur cette machine que vous effectuerez les premiers tests pour vérifier que votre application fonctionne.
Ensuite vous déploierez vos applications sur le Raspberry Pi pour les tester et vérifier que nous n'avez pas besoin de les altérer pour mieux s'adapter aux contraintes du mini-PC telles que son espace mémoire plus réduit et son CPU peu puissant.
Si vous utilisez des périphériques spéciaux ou des senseurs connectés sur le Raspberry Pi, c'est également sur cette plateforme que vous devez tester si votre programme peut y accéder correctement. Par contre, vous devrez inclure les bibliothèques nécessaires à la compilation sur votre machine de développement.
Nous allons lister ici les prérequis pour développer pour Raspberry Pi.
Côté Raspberry Pi :
- un Raspberry Pi modèle B, B+, 2 ou plus récent ;
- son module d'alimentation ;
- une carte mémoire de capacité suffisante et déjà préparée avec le système d'exploitation approprié (Oracle recommande Rasbian). L'outil NOOBS permet de facilement configurer une carte mémoire ;
- un câble réseau pour connecter le Raspberry Pi sur un LAN ;
- un écran (qui peut être tactile ou pas) ;
- un câble HDMI pour connecter l’écran ;
- un clavier USB ;
- une souris USB ;
- la dernière version du JDK pour processeurs ARM. Vous devez disposer d'une version du JDK compatible ARM 32bit Hard Float ABI ; la version Soft Float ABI n'est pas suffisante pour faire fonctionner JavaFX.
- Une version precompilée du port ARM de JavaFX. Un tel port est disponible dans la section Downloads du projet ARM de JavaFXPorts.
Le Raspberry Pi doit être configuré pour supporter les connexions via SSH. Le JDK et le port ARM de JavaFX peuvent être aussi bien installés dans un répertoire système ou dans un des sous-répertoires de l'utilisateur qui servira pour la connexion SSH.
Si vous comptez développer une application kiosque avec un écran tactile, la souris et le clavier ne vous serviront que pour la préparation du système et pour les phases de test.
X ne doit pas être lancé ! JavaFX initialisera directement un mode graphique plein écran en utilisant le frame buffer. Vous pouvez adapter la résolution du frame buffer à la taille de votre écran en modifiant ses dimensions dans le fichier /boot/config.txt.
Côté machine de développement :
- une configuration matérielle et logicielle suffisante pour développer des applications en Java. N'importe quel OS qui vous permet de développer en Java conviendra ;
- un IDE qui prend en charge l’exécution et le débogage sur une JVM distante (par exemple, NetBeans) ;
- une version du JDK dont l'API est compatible avec la version dont vous disposez sur le Raspberry Pi.
Dans NetBeans, allez dans Tools->Java Platforms. Cliquez ensuite sur Add Platform... et choisissez Remote Java Standard Edition puis cliquez sur Next >.
Dans l’écran suivant, vous devez donner un nom à votre plateforme, par exemple « Raspberry Pi JDK8 ».
Dans le champ Host, vous devez indiquer le nom de votre Raspberry Pi sur le réseau.
Le champ Username doit contenir le nom d'utilisateur pour la connexion SSH.
Vous pouvez opter pour la connexion de type Use Password Authentication auquel cas il vous faudra fournir le mot de passe de ce compte.
Il vous faut ensuite donner le chemin d’accès vers le JDK installé sur le Raspberry Pi (par exemple : /opt/java/jdk).
Enfin, le champ Working Dir, contiendra le chemin d’accès vers le répertoire de stockage des projets lorsque Netbeans publie un programme sur le Raspberry Pi.
Cliquez ensuite sur Finish pour valider la création de la nouvelle plateforme. Netbeans va alors tenter de se connecter sur votre Raspberry Pi pour tester si la plateforme nouvellement définie est accessible.
Une fois la création de la nouvelle plateforme finie, vous aurez accès à un écran résumant sa configuration. Cet écran dispose également d'un bouton permettant de tester la plateforme.
Sur votre ordinateur de développement, créez un nouveau projet JavaFX dans NetBeans comme à l’accoutumée.
Éditez ensuite les propriétés de votre projet.
Dans l'onglet Sources, changez le Profile en Compact 3. En effet, la JVM pour plateformes embarquées ne contient pas l’intégralité des API disponibles dans la JVM destinée aux machines de bureau et portables. Par exemple, à l'heure actuelle, JavaFX pour Raspberry Pi n'offre pas de support de la 3D, des médias ou du web.
Dans l'onglet Run, créez une nouvelle configuration nommée par exemple « Test sur Raspberry Pi ».
Dans le champ Runtime Platform, choisissez la plateforme « Raspberry Pi JDK8 » que nous avons définie précédemment.
Puis cliquez sur Ok pour valider.
Vérifiez que votre Raspberry Pi est bien connecté au réseau et est accessible via SSH ; que son écran est allumé et, si besoin, que la souris et le clavier sont bien branchés.
Vérifiez également que votre application se lance et fonctionne comme prévu sur votre machine de développement.
Dans la boîte déroulante de la propriété de votre projet, au lieu de « <default config> », sélectionnez maintenant « Test sur Raspberry Pi ».
Vous pouvez également cliquer avec le bouton de droite sur la racine de votre projet puis choisir Set Configuration -> Test sur Raspberry Pi.
Démarrez maintenant votre projet comme à l’accoutumée. La fenêtre de sortie contiendra les logs de Netbeans indiquant que l'IDE est en train d'essayer de se connecter sur votre Raspberry Pi.
Au bout d'un certain temps, l'interface graphique de votre application sera affichée en plein écran. Le Raspberry Pi est beaucoup moins puissant que votre machine de développement, ne soyez donc pas étonné si l'affichage met du temps à apparaître. Vous n'avez pas besoin qu'un utilisateur ait déjà une session d'ouverte sur le Raspberry Pi pour que l'affichage apparaisse.
Sur Raspberry Pi, votre application s'affiche directement en mode plein écran grâce au frame buffer. Il n'y a donc pas de système de fenêtrage qui place un bouton pour fermer la fenêtre.
C'est donc à vous, programmeur, qu'il revient de placer un bouton permettant de quitter l'application et de revenir sur le prompt de la console en appelant la méthode exit() de la classe utilitaire javafx.application.Platform.
Code Java : | Sélectionner tout |
exitButton.setOnAction(actionEvent -> Platform.exit());
Évidemment, si vous développez une application en mode kiosque, vous prendrez soin de cacher ce bouton lors de la mise en production de l’application.
Si vous avez défini la variable système d'environnement JAVAFX_DEBUG à la valeur 1 avant de lancer le programme, vous pouvez utiliser la combinaison clavier CTRL-C pour quitter l'application. Cette variable est destinée au développement, il vaudrait mieux éviter d'utiliser cette méthode en environnement de production.
Vous pouvez également ouvrir une session sur le Raspberry Pi via SSH via un terminal (bash, Cygwin, Putty, etc.) de manière à tuer le processus Java qui fait tourner votre application.
Enfin, il vous reste la possibilité de débrancher puis de rebrancher votre Raspberry Pi de manière à le rebooter.
Si, lors du passage en mode plein écran, votre application ne prend pas toute la taille de la zone d'affichage, et que cela ne vient pas de votre code, c'est probablement que le frame buffer est mal configuré dans votre installation du Raspberry Pi. Vous pouvez éditer les valeurs framebuffer_width et framebuffer_height dans le fichier /boot/config.txt pour y modifier les dimensions du frame buffer de manière à ce qu'elles coïncident avec une résolution native de votre écran physique
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.