{"id":4242,"date":"2015-04-03T10:53:36","date_gmt":"2015-04-03T09:53:36","guid":{"rendered":"http:\/\/www.lesmonts.ch\/wp_fr\/?p=4242"},"modified":"2015-04-03T10:53:36","modified_gmt":"2015-04-03T09:53:36","slug":"java-fx","status":"publish","type":"post","link":"https:\/\/www.lesmonts.ch\/wp_fr\/java-fx\/","title":{"rendered":"Java FX"},"content":{"rendered":"<p>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\u00e8s dynamique dans le monde mobile (Android) et dans la galaxie serveur (Java EE), le monde du desktop est un peu laiss\u00e9 de c\u00f4t\u00e9 : Swing est un d\u00e9veloppement abandonn\u00e9, et la nouvelle technologie Java FX tarde \u00e0 s&rsquo;imposer. Pour explorer cette technologie, rien ne vaut l&rsquo;essai pratique; j&rsquo;ai donc profit\u00e9 de l&rsquo;introduction de Java 8u40 en mars 2015 pour me jeter \u00e0 l&rsquo;eau dans l&rsquo;environnement Java FX (avec tout de m\u00eame un solide background de programmation Java). Java 8u40 introduit en effet pour la premi\u00e8re fois des dialogues FX simples, auparavant support\u00e9s par le projet (excellent) Open Source <a title=\"Controls FX\" href=\"http:\/\/fxexperience.com\/controlsfx\/\" target=\"_blank\">controlsfx<\/a>.<\/p>\n<p>Quoi de mieux qu&rsquo;un projet d&rsquo;une certaine envergure pour tester les possibilit\u00e9s d&rsquo;une technologie ? J&rsquo;ai donc d\u00e9cid\u00e9, apr\u00e8s tout de m\u00eame quelques essais pour me persuader que cette technologie avait un sens, de mettre sur pied un gestionnaire de diapositives num\u00e9riques. Mais bon, un peu plus sophistiqu\u00e9 tout de m\u00eame que les outils (excellents au demeurant) comme <a title=\"XnView\" href=\"http:\/\/www.xnview.com\/fr\/\" target=\"_blank\">XnView <\/a>ou <a title=\"IrfanView\" href=\"http:\/\/www.irfanview.com\/\" target=\"_blank\">IrfanView<\/a>, voire autres <a title=\"ACDSee\" href=\"http:\/\/www.acdsee.com\/fr\/\" target=\"_blank\">ACDSee<\/a>. Il ne s&rsquo;agit pas (seulement) de montrer des photos num\u00e9riques planqu\u00e9es dans un r\u00e9pertoire du disque dur, mais de les organiser, les g\u00e9olocaliser, les commenter, les s\u00e9quencer, et les exporter sur divers m\u00e9dias (web, mobile, voire les \u00ab\u00a0caster\u00a0\u00bb en sans-fil sur la t\u00e9l\u00e9 ou ailleurs avec Chromecast). En revanche, je n&rsquo;avais pas l&rsquo;intention de me livrer \u00e0 des manipulation sophistiqu\u00e9es sur les photos, car d&rsquo;autres font \u00e7a bien mieux (<a title=\"Photoshop et Lightroom\" href=\"http:\/\/www.adobe.com\/ch_fr\/products\/photoshop-lightroom.html\" target=\"_blank\">Lightroom<\/a>, <a title=\"DXO\" href=\"http:\/\/www.dxo.com\/fr\" target=\"_blank\">DXO<\/a>, <a title=\"Photoshop et Lightroom\" href=\"http:\/\/www.adobe.com\/ch_fr\/products\/photoshop-lightroom.html\" target=\"_blank\">Photoshop<\/a>, &#8230;) que je ne pourrais l&rsquo;imaginer.<\/p>\n<p>Les premi\u00e8res impressions sont plut\u00f4t positives; mais il faut un peu de temps pour apprendre \u00e0 composer avec les multiples \u00ab\u00a0ChangeListener\u00a0\u00bb, et un sch\u00e9ma hi\u00e9rarchique de composants assez diff\u00e9rent de celui de Swing. Il faut configurer <a title=\"E(fx)clipse\" href=\"https:\/\/www.eclipse.org\/efxclipse\/install.html\" target=\"_blank\">eclipse (LUNA) <\/a>pour \u00eatre en mesure de travailler ais\u00e9ment avec Java FX; pour NetBeans, je n&rsquo;ai pas essay\u00e9, mais c&rsquo;est probablement support\u00e9 de mani\u00e8re native, puisque le produit est support\u00e9 par Oracle.<\/p>\n<p>Mes premiers essais ont consist\u00e9 \u00e0 construire une fen\u00eatre d&rsquo;introduction qui est cens\u00e9e afficher par la suite la liste des pr\u00e9sentations archiv\u00e9es en base de donn\u00e9es, puis \u00e0 impl\u00e9menter la cr\u00e9ation d&rsquo;une pr\u00e9sentation \u00e0 partir d&rsquo;un r\u00e9pertoire. Juste histoire de comprendre comment g\u00e9n\u00e9rer des fen\u00eatres, des menus, charger des imagettes et ouvrir l&rsquo;image correspondante en plein \u00e9cran sur un double clic de souris. FX permet d&rsquo;arriver tr\u00e8s vite \u00e0 un r\u00e9sultat int\u00e9ressant; c&rsquo;est comme souvent dans les d\u00e9tails que se dissimulent les difficult\u00e9s. Je vous propose de suivre ce d\u00e9veloppement dans les prochains articles, mais voici d\u00e9j\u00e0 quelques saisies d&rsquo;\u00e9crans de d\u00e9veloppement :<\/p>\n<p><a href=\"http:\/\/www.lesmonts.ch\/wp_fr\/wp-content\/uploads\/2015\/04\/sshow1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-4243\" src=\"http:\/\/www.lesmonts.ch\/wp_fr\/wp-content\/uploads\/2015\/04\/sshow1-300x169.png\" alt=\"sshow1\" width=\"300\" height=\"169\" srcset=\"https:\/\/www.lesmonts.ch\/wp_fr\/wp-content\/uploads\/2015\/04\/sshow1-300x169.png 300w, https:\/\/www.lesmonts.ch\/wp_fr\/wp-content\/uploads\/2015\/04\/sshow1-1024x576.png 1024w, https:\/\/www.lesmonts.ch\/wp_fr\/wp-content\/uploads\/2015\/04\/sshow1.png 1366w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.lesmonts.ch\/wp_fr\/wp-content\/uploads\/2015\/04\/sshow2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-4244\" src=\"http:\/\/www.lesmonts.ch\/wp_fr\/wp-content\/uploads\/2015\/04\/sshow2-300x111.png\" alt=\"sshow2\" width=\"300\" height=\"111\" srcset=\"https:\/\/www.lesmonts.ch\/wp_fr\/wp-content\/uploads\/2015\/04\/sshow2-300x111.png 300w, https:\/\/www.lesmonts.ch\/wp_fr\/wp-content\/uploads\/2015\/04\/sshow2.png 421w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.lesmonts.ch\/wp_fr\/wp-content\/uploads\/2015\/04\/sshow3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-4245\" src=\"http:\/\/www.lesmonts.ch\/wp_fr\/wp-content\/uploads\/2015\/04\/sshow3-300x143.png\" alt=\"sshow3\" width=\"300\" height=\"143\" srcset=\"https:\/\/www.lesmonts.ch\/wp_fr\/wp-content\/uploads\/2015\/04\/sshow3-300x143.png 300w, https:\/\/www.lesmonts.ch\/wp_fr\/wp-content\/uploads\/2015\/04\/sshow3.png 789w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.lesmonts.ch\/wp_fr\/wp-content\/uploads\/2015\/04\/sshow5.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-4246\" src=\"http:\/\/www.lesmonts.ch\/wp_fr\/wp-content\/uploads\/2015\/04\/sshow5-300x276.png\" alt=\"sshow5\" width=\"300\" height=\"276\" srcset=\"https:\/\/www.lesmonts.ch\/wp_fr\/wp-content\/uploads\/2015\/04\/sshow5-300x276.png 300w, https:\/\/www.lesmonts.ch\/wp_fr\/wp-content\/uploads\/2015\/04\/sshow5.png 788w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>A plus !<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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\u00e8s dynamique dans le monde mobile (Android) et dans la galaxie serveur (Java EE), le monde du desktop est un peu laiss\u00e9 de c\u00f4t\u00e9 : Swing est un d\u00e9veloppement abandonn\u00e9, et &hellip; <a href=\"https:\/\/www.lesmonts.ch\/wp_fr\/java-fx\/\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Java FX<\/span>  <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","ngg_post_thumbnail":0,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-4242","post","type-post","status-publish","format-standard","hentry","category-non-classe"],"_links":{"self":[{"href":"https:\/\/www.lesmonts.ch\/wp_fr\/wp-json\/wp\/v2\/posts\/4242","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lesmonts.ch\/wp_fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lesmonts.ch\/wp_fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lesmonts.ch\/wp_fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lesmonts.ch\/wp_fr\/wp-json\/wp\/v2\/comments?post=4242"}],"version-history":[{"count":1,"href":"https:\/\/www.lesmonts.ch\/wp_fr\/wp-json\/wp\/v2\/posts\/4242\/revisions"}],"predecessor-version":[{"id":4247,"href":"https:\/\/www.lesmonts.ch\/wp_fr\/wp-json\/wp\/v2\/posts\/4242\/revisions\/4247"}],"wp:attachment":[{"href":"https:\/\/www.lesmonts.ch\/wp_fr\/wp-json\/wp\/v2\/media?parent=4242"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lesmonts.ch\/wp_fr\/wp-json\/wp\/v2\/categories?post=4242"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lesmonts.ch\/wp_fr\/wp-json\/wp\/v2\/tags?post=4242"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}