Java FX

Depuis le rachat de Sun Microsystems par Oracle, on se demande un peu dans quelle direction se dirige Java sur la place de travail. Très dynamique dans le monde mobile (Android) et dans la galaxie serveur (Java EE), le monde du desktop est un peu laissé de côté : Swing est un développement abandonné, et la nouvelle technologie Java FX tarde à s’imposer. Pour explorer cette technologie, rien ne vaut l’essai pratique; j’ai donc profité de l’introduction de Java 8u40 en mars 2015 pour me jeter à l’eau dans l’environnement Java FX (avec tout de même un solide background de programmation Java). Java 8u40 introduit en effet pour la première fois des dialogues FX simples, auparavant supportés par le projet (excellent) Open Source controlsfx.

Quoi de mieux qu’un projet d’une certaine envergure pour tester les possibilités d’une technologie ? J’ai donc décidé, après tout de même quelques essais pour me persuader que cette technologie avait un sens, de mettre sur pied un gestionnaire de diapositives numériques. Mais bon, un peu plus sophistiqué tout de même que les outils (excellents au demeurant) comme XnView ou IrfanView, voire autres ACDSee. Il ne s’agit pas (seulement) de montrer des photos numériques planquées dans un répertoire du disque dur, mais de les organiser, les géolocaliser, les commenter, les séquencer, et les exporter sur divers médias (web, mobile, voire les « caster » en sans-fil sur la télé ou ailleurs avec Chromecast). En revanche, je n’avais pas l’intention de me livrer à des manipulation sophistiquées sur les photos, car d’autres font ça bien mieux (Lightroom, DXO, Photoshop, …) que je ne pourrais l’imaginer.

Les premières impressions sont plutôt positives; mais il faut un peu de temps pour apprendre à composer avec les multiples « ChangeListener », et un schéma hiérarchique de composants assez différent de celui de Swing. Il faut configurer eclipse (LUNA) pour être en mesure de travailler aisément avec Java FX; pour NetBeans, je n’ai pas essayé, mais c’est probablement supporté de manière native, puisque le produit est supporté par Oracle.

Mes premiers essais ont consisté à construire une fenêtre d’introduction qui est censée afficher par la suite la liste des présentations archivées en base de données, puis à implémenter la création d’une présentation à partir d’un répertoire. Juste histoire de comprendre comment générer des fenêtres, des menus, charger des imagettes et ouvrir l’image correspondante en plein écran sur un double clic de souris. FX permet d’arriver très vite à un résultat intéressant; c’est comme souvent dans les détails que se dissimulent les difficultés. Je vous propose de suivre ce développement dans les prochains articles, mais voici déjà quelques saisies d’écrans de développement :

sshow1

sshow2

sshow3

sshow5

A plus !