{"id":920,"date":"2011-06-28T08:06:53","date_gmt":"2011-06-28T07:06:53","guid":{"rendered":"http:\/\/www.alpesjug.fr\/?p=920"},"modified":"2011-10-01T07:43:50","modified_gmt":"2011-10-01T06:43:50","slug":"javafx-2-0-compte-rendu","status":"publish","type":"post","link":"https:\/\/www.alpesjug.fr\/?p=920","title":{"rendered":"JavaFX 2.0 compte rendu"},"content":{"rendered":"<p>Compte rendu de la pr\u00e9sentation d&rsquo;<a href=\"http:\/\/www.java.net\/blogs\/emcmanus\">\u00c9amonn McManus<\/a> : <a href=\"http:\/\/javafx.com\/roadmap\/\">JavaFX 2.0<\/a><\/p>\n<p>Abandon de Java FX Script pour la version 2.0 :  la raison ? Adoption trop faible du premier. L\u2019API est devenue full-Java. Notez que le <a href=\"http:\/\/code.google.com\/p\/visage\/\">projet Visage<\/a> reprend le flambeau  \u201c the original code base for the Visage compiler is from Oracle&rsquo;s JavaFX Compiler project which has numerous contributors\u201d<\/p>\n<p>Une beta pour la fin Q2 2O11. Une finale pour le Q3 et les conf\u00e9rence associ\u00e9es.<\/p>\n<p>Petite d\u00e9mo pour commencer : un cube 3D jouant de la vid\u00e9o sur toutes les faces. Question : y a-t-il du code natif pour faire tourner cette d\u00e9mo ? oui \u00e0 travers la plate-forme et OpenGL mais la d\u00e9mo est cod\u00e9e en Java.<\/p>\n<p>Int\u00e9r\u00eats de JavaFX :<\/p>\n<ul>\n<li>acc\u00e9l\u00e9ration graphique<\/li>\n<li>un showcase pour les animations<\/li>\n<li>API AWT et SWING vieillissantes<\/li>\n<\/ul>\n<p>Les outils: <a href=\"http:\/\/www.java.net\/blogs\/emcmanus\">\u00c9amonn McManus<\/a> a pr\u00e9sent\u00e9 un outil de cr\u00e9ation graphique permettant de d\u00e9finir l\u2019interface. Cet outil \u00e9crit en JavaFX est ind\u00e9pendant des IDE. Il cr\u00e9e juste la structure graphique. Ensuite les IDE (Eclipse, Netbeans, IDEA) permettent de coder les \u00e9v\u00e8nements, les bindings. Enfin le style est g\u00e9r\u00e9 par un fichier CSS.<br \/>\nOracle a d\u00e9lib\u00e9r\u00e9ment choisis de ne pas partir sur un plugin Netbeans pour se pr\u00e9munir d\u2019un rejet de la communaut\u00e9 Eclipse.<br \/>\nOn est aussi tr\u00e8s proche d\u2019une philosophie WEB \/ HTML avec un d\u00e9coupage: Structure \/ Code \/ Style.<\/p>\n<p>Il n\u2019y a pas de blocage technique \u00e0 la cr\u00e9ation de plugins Netbeans. JavaFX peut fonctionner dans un fen\u00eatre Swing et inversement. <a href=\"http:\/\/www.java.net\/blogs\/emcmanus\">\u00c9amonn McManus<\/a> previent d\u2019une \u00e9ventuelle perte de performance.<\/p>\n<p>Un composant particuli\u00e8rement int\u00e9ressant: un navigateur bas\u00e9e sur WebKit peut \u00eatre int\u00e9gr\u00e9 dans une fen\u00eatre Java FX. Il est de plus possible d\u2019interagir avec le contenu HTML de la fen\u00eatre. Cela ouvre des perspectives tr\u00e8s int\u00e9ressante. On se demande aussi, si il est possible de faire une applet qui ouvrirait un navigateur qui &#8230;<\/p>\n<p>Mise en place d\u2019API CSS pour styler les applications avec un comportement proche du WEB.<\/p>\n<p><strong>Property binding<\/strong><\/p>\n<p>Possibilit\u00e9 de lier la valeur d\u2019une propri\u00e9t\u00e9 d\u2019un objet \u00e0 celle d\u2019un autre de mani\u00e8re dynamique (exemple du slider qui permet de modifier la taille d\u2019un rectangle qui est \u201cbind\u00e9\u201d \u00e0 la valeur du slider).<\/p>\n<p><a href=\"http:\/\/www.java.net\/blogs\/emcmanus\">\u00c9amonn McManus<\/a> aborde les probl\u00e8me de \u201cbind-storm\u201d mise \u00e0jour des bind en cascade qui casse la fluidit\u00e9 de l\u2019interface graphique.<br \/>\nSolution : gestion plus fine d\u2019invalidit\u00e9 des tailles calcul\u00e9es, elles ne sont calcul\u00e9es qu\u2019\u00e0 la demande (une fois par frame affich\u00e9e).<\/p>\n<p>D\u00e9ploiement : application \/ applet \/ Java web start (r\u00e9action du public \u00e0 l\u2019\u00e9vocation de ce dernier : a-t-il pris un coup de jeune ou bien ?) De plus la plateforme JavaME n\u2019est plus support\u00e9e. Windows est la cible principale, MacOS viens ensuite et Linux peut \u00eatre.<\/p>\n<p>\u00c9v\u00e8nements :Gestion assez traditionnelle \u00e0 base de Handlers, Event Filter et EventDisptacher semblable \u00e0 d\u2019autres mod\u00e8les actuels : Hi\u00e9rarchie de classe entre \u00e9v\u00e8nement, d\u00e9sactivation d\u2019ev\u00e8nement avant re-throwing.<\/p>\n<p><strong>Threading<\/strong><br \/>\nLe syst\u00e8me est mono-thread\u00e9 au niveau des API graphiques (\u00e9v\u00e8nement et traitement de ces derniers dans un seul Thread).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Compte rendu de la pr\u00e9sentation d&rsquo;\u00c9amonn McManus : JavaFX 2.0 Abandon de Java FX Script pour la version 2.0 : la raison ? Adoption trop faible du premier. L\u2019API est devenue full-Java. Notez que&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15],"tags":[],"class_list":["post-920","post","type-post","status-publish","format-standard","hentry","category-compte-rendu"],"_links":{"self":[{"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/posts\/920","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=920"}],"version-history":[{"count":3,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/posts\/920\/revisions"}],"predecessor-version":[{"id":989,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/posts\/920\/revisions\/989"}],"wp:attachment":[{"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=920"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=920"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=920"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}