JOGL est officielle.
visiblement, la 3D est prévue pour javaFX dans une future version.
Version imprimable
JOGL est officielle.
visiblement, la 3D est prévue pour javaFX dans une future version.
Java3D est officielle.
C'est ce que je voulais dire. On a 2 lib officielles mais aucune des deux ne l'est assez pour être intégrée dans JRE alors qu'on ne peut pas dire qu'elles soient trop jeune pour cela.
Je préfère dans ce cas là dire que l'on a rien d'officiel.
Les transformations 2D sont suffisantes dans la quasi totalité des animations usuelles de texte et d'image (flip, scroll, carrousel, ...).
Pourquoi attendez vous impatiemment d'avoir de la vraie 3D dans une applet JavaFx, à part l'effet "demo de la mort qui tue" ?
Aller un message pour detendre l'atmoshpere sur le sujet.
JavaFX c'est beau, c'est bien, mais n'oublions pas notre tres cher IDE qui va avec : NetBeans !
Et en parlant de lui, Netbeans a franchi un nouveau cap dans l'interface utilisateur. Oui Oui véridique.
NetBeans fait maintenant .... (roulement de tamboour) de l'HUMOUR ! :aie:
Preuve en image :
http://img296.imageshack.us/img296/4...mourtd8.th.jpg
+1 (enfin sur IE 7 chez moi, aujourd'hui je tente la meme chose au boulot)
Merci, je tempete depuis des annees quand au fait que Java 3D, Java Help, le JAI et le JMF ne soient pas inclus dans le JRE ; enfin je me sens moins seul :yaisse2:. Gfx disait que c'etait pour laisser le temps a ces lib d'evoluer de leur cote tant qu'elle n'etaient pas suffisament matures... on sait ce qu'il en est advenus de certaines (JMF...).
De toute maniere ils ont pris la solution complement opposee a savoir rendre certaines modules optionnels (Java Sound) et le JRE "modulable" capable d'aller recuperer ses libs additionnelle... Ce qui est, certes, une bonne solution pour vous dans le monde hyper-connecte mais pas pour nous dans le tiers-monde des reseaux (ce qui equivaut quand meme grosso-modo a 70%+ de la planete) low-debits, pas stable ou la connection n'est pas garantie 100% du temps...
Euh, pour rappel moi ca marche sous Firefox chez moi quand meme... C'est sous IE 7 que ca deconne. Donc ca m'etonnerai que ca vienne du site web pour le coup.
Quant au boulot :
Ben re-logo tournoyant !!!!!!!!!!!!!!!!!!!! ... sous IE 7... car sous Firefox, ben, euh, ca fonctionne encore (mais LOL) par contre c'est BEAUCOUP plus lent que chez moi (cet ordi est beaucoup plus vieux ceci dit).
Cote console sous IE 7 pareil qu'a la maison Pièce jointe 39140
Sous Firefox seule la derniere ligne apparait.
J'ai suivi la session JavaFx ce matin à devoxx/javapolis.
Ils faisaient leur démos sous Mac OS X. Et ca fonctionne très très bien. Aussi bien que les démos sous Windows. :-)
Le développement JavaFX sous Mac est totalement opérationnel.Citation:
Développement :
Flash : windows/mac only
Silverlight : windows only
JavaFx : windows only (linux à venir)
Les builds pour Linux sont également prêts. Toutes corrections de bogues se font aussi bien pour les plateformes Windows, Mac OS X, et Linux.
Le gros problème qui coince actuellement sous Linux, c'est la gestion de la vidéo. Mais ils y travaillent.
Pourquoi tu mets ko pour JavaFX ?Citation:
Streaming de vidéos :
Flash : ok
Silverlight : ok
JavaFx : ko (les vidéos de démos JavaFx sont en flash...)
Sun a acheter à la société (j'ai oublié le nom ? On2 ) les même codecs qu'adobe utilise pour Flash. Donc, JavaFx peut jouer les fichiers .flv sans soucis. Et ce quelque soit la plateforme sur laquelle tourne JavaFX. Ensuite, JavaFx peut jouer les fichiers vidéos dont la plateforme dispose des codecs. Bref, en installant VLC sous Windows, tu joues déjà pas mal de vidéos.
Pourquoi JavaFx ko ? Il peut afficher des fichiers SVG et tu peux dessiner en vectoriel avec l'outils d'adobe et même d'autres et ensuite exporter au format JavaFx (mais c'est un format propre à JavaFx, pas un standard :-()Citation:
Dessin vectoriel
Flash : ok
Silverlight : ok (??)
JavaFx : ko (??)
On en a pas parlé. Mais je poserai la question demain (tantôt) à l'équipe.Citation:
3D
Flash : ok
Silverlight : prochaine version
JavaFx : ??
Ben non. En JavaFX tu peux pas démarrer toi même des threads.Citation:
Possibilité de faire du multithread
Flash : 1 thread réservé pour l'asynchrone
Silverlight :ko actuellement
JavaFx : ok
Citation:
Alertes à l'exécution
Flash : aucune
Silverlight : aucune (??)
JavaFx : au moins une ("faites vous confiance")
Sommes nous d'accord ?
Par ailleurs, ceux ayant expérimentés des problèmes du freeze du son ou de la vidéo au chargement très long pourraient ils indiquer leur OS, version de Java et navigateurs ?
Pour ma part, sous Ubuntu avec le dernier JDK (1.6), ça tournait bien sauf le chargement un peu long ==> plus rapide de démarrer en JavaWebStart.
++
salut
merci de vos réponses :)
vbrabant : et tous ces freezes sous IE7, tu as des pistes chez Sun ? C'est tout de même un peu tristounet non ? :oops:
Faut que je me renseigne pour Mac, un ami me disait qu'ils étaient bloqués au JDK 1.5 du fait de pb de compatibilités sous Mac...
A propos des vidéos et JavaFX : pourquoi les vidéos de chez sun ne sont pas en JavaFX du coup ? Quand je vois que Sun utilise la technique du concurrent pour la vidéo, je me dis ensuite qu'il y a anguille sous roche perso. A tort peut être, qui sait, mais ça ne met pas en confiance :aie:
Pour les threads, pas de création de threads possible dans JavaFX, mais est ce aussi le cas dans une applet (moi pas expert, moi désolé :oops::mouarf:, mais toi avoir déjà remarqué et répondu, merci toi encore ;) ) ? Si on ne peut vraiment faire cela, comment est on sensé gérer l'asynchrone ?
Merci pour les questions concernant la 3D et passe leur toutes mes félicitations aussi :oops:: c'est clairement un pas dans le bon sens AMHA.
A propos, ça serait pas le seul framework d'animation vectoriel intégrable dans tout navigateur (sauf IE7 ?) qui soit open source ? Ou y avait il des doutes sur ce point (j'ai vu pas mal de question sur les licences) ?
EDIT : autre question : pourquoi on n'a aucune info par défaut lors des clics droit sur une appli JavaFx ? Perso j'aime bien que Flash me donne sa version :oops:
EDIT 2 : lorsque la souris est sur une appli JavaFx cela désactive le scroll vertical de la page html à la roulette. Un peu dommage...
EDIT 3 : les démos de cette page http://www.javafx.com/samples/ sont tout de même bien bien sympas, surtout avec le code qui va avec. Vivement que j'ai le temps de jouer avec :)
EDIT 4 : un plugin Eclipse est il prévu ou en cours ?
Dodo time !
pour les threads, il y a le package async pour gerer les calls qui doivent etre non bloquants.
ensuite, on doit pourvoir faire un import de thread java et les executer (faut que je teste)
NetBeans toujours HS... j'abandonne pour aujourd'hui. Quand j'aurais plus de temps j'essaierai d'ecraser mon install avec l'install contenant JavaFX... :aie:
Pièce jointe 39143
Si j'ai bien compris, ce n'est pas tant la technologie du concurrent que la technologie d'une boite tierce que les deux compagnies ont decide de licencier pour leur usage propre.
Apres tout si cela permet d'utiliser les services video actuels sans demander aux devellopeurs de recompresser leur video dans un nieme format ce n'est pas plus mal.
N'oublie pas que les serveurs de Sun ont chauffé à blanc le jour de l'annonce. C'était sûrement dû à cela. Non ?
Ca ne change rien au fait que JavaFX tourne sous Java 1.5 sous Mac OS X.Citation:
Faut que je me renseigne pour Mac, un ami me disait qu'ils étaient bloqués au JDK 1.5 du fait de pb de compatibilités sous Mac...
C'est indiqué dans la FAq Java FX, point 1.14
Citation:
JavaFX 1.0 Desktop Runtime will be automatically downloaded on Windows and Mac OS desktops and browsers that support Java 1.5 or higher, when users access a JavaFX application for the first time. Users don't have to download anything additional to run JavaFX applications.
JavaFX 1.0 platform includes support for developing JavaFX Mobile applications only for the mobile emulator. The JavaFX runtime for mobile devices will be released in Spring 2009.
Ca va venir, je suppose. Faut leur laisser le temps.Citation:
A propos des vidéos et JavaFX : pourquoi les vidéos de chez sun ne sont pas en JavaFX du coup ? Quand je vois que Sun utilise la technique du concurrent pour la vidéo, je me dis ensuite qu'il y a anguille sous roche perso. A tort peut être, qui sait, mais ça ne met pas en confiance :aie:
ils ont montré ce matin le plugin eclipse pour JavaFX. Mais il n'est pas encore au point car il mettait tout en erreur dans l'éditeur, alors qu'il le compilait et l'exécutait.:aie:Citation:
EDIT 4 : un plugin Eclipse est il prévu ou en cours ?
Dodo time !
T'as un lien ?
Mais une fois que t'es repassé en Java, pas possible de revenir en JavaFx. :aie:Citation:
ensuite, on doit pourvoir faire un import de thread java et les executer (faut que je teste)
Tu pourra pas mettre dans la méthode start() ou run() (retiens jamais laquelle) de ton thread du code javafx.
Voici un exemple d'integration de JavaFX dans Swing (plutot que l'exemple inverse qui nous est presente a toutes les sauces) :
http://stufffromjim.blogspot.com/200...lications.html
Note : ici il s'agit de la version pre-release.
effectivement, un thread java ne pourra pas manipuler du code coté javaFX... bon c'est vrai que ca limite l'utilité :aie:
par contre pour async
http://java.sun.com/javafx/1/docs/ap...Operation.html
un exemple d'utilisation
http://blogs.sun.com/clarkeman/entry...d_json_weather
eclesia, ce n'est pas un message de NetBeans, c'est un message de javafxc, le compilateur de JavaFX. J'ai exactement les memes en passant par la ligne de commande (j'essaie de porter du code javaFX pre-release genere par Inkscape en code javaFX 1.0). Comme je me m'en sort pas, je vais regarder du cote du convertisseur present dans la Production Suite.
EDIT - cette fois-ci, plusieurs heures apres le dernier test et sans rien changer aucunement, les exemples finissent par se lancer sous IE 7 sans rester a rien faire pendant des heures que d'avoir le logo anime. Par contre c'est toujours aussi peu veloce a l'execution...
EDT 2 - quelques heures plus tard j'ai mon Production Suite qui me cree un .fxz (un zip* contenant un .fxd) alors qu'Inkscape produit un script* .fx.
J'etais d'abords parti sur l'utilisation de la classe Image pour l'afficher mais cela ne fonctionne pas (aucune erreur retournee d'ailleurs, on va retomber sur les problemes made in ToolKit...) tandis que le meme code fonctionne avec un PNG sans probleme.
Apres avoir fouille un peu sur le web apparement il faut utiliser des classes du package javafx.fxd. Or je decouvre que la javafxdoc du package javafx.fxd qui est sensee indiquer comment charger les entites du fichier... n'est ni dans l'API doc sur le site ni dans l'API doc fournie avec le SDK. Donc j'en suis reduit a singer du code que je ne comprends pas vraiment pour le moment (sans parler de l'adaptation a la syntaxe).
*ayant precedement rencontre des problemes avec le convertisseur .svg -> Java2D de Kiril lorsqu'on traite des fichiers trop complexes (le fichier .java produit est trop gros pour pouvoir etre compile par javac), la maniere de faire de la Production Suite n'est pas forcement une mauvaise idee.
Concernant la javafxdoc elle-meme, mon avis est mitige : c'est certes plus joli mais la liste complete des classes de la javadoc classique se fait cruellement sentir, j'ai le choix entre deplier un a un chacun des noeuds de l'arborescence ou rechercher dans l'index (or comme dans la javadoc, l'index contient la liste de toutes les classes ET de toutes les methodes ET de toutes les variables, donc c'est une horreur a charger quand on est sur la version en ligne). Vivement que mon NetBeans fonctionne avec JavaFX :aie:...
Ayant par le passe deja devellope mes propres sliders je n'en revient pas de la facilite avec laquelle il est possible de definir un composant similaire (voir la classe CustomSlider dans l'exemple PhotoEffects). Certes la ils utilisent des bitmap mais je suppose qu'apres on peut remplacer le tout par des entites sorties d'un fxz/fxd. Il devrait etre ainsi possible de se creer une vraie interface graphique vectorielle avec tous les bouts et apparences de composants definis dans un tel fichier (enfin le jour ou j'aurai compris comment ca marche). Par contre evidement desormais on sort du MVC qui nous est cher.
Puisqu'on peut construire un objet venant d'un script JavaFX depuis du code Java, pourquoi on ne pourrait pas le manipuler dans un thread?
Exemple indiqué par bouye :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public void runMe() { JFrame jf = new JFrame("Swing and JavaFX Test"); jf.setPreferredSize(new Dimension(600,400)); jf.getContentPane().setLayout(new FlowLayout()); jf.getContentPane().add(new JButton("Click me")); jf.getContentPane().add(new JTextField("Type into me")); // JavaFX widget here! stopwatch.SWCanvas c1 = new stopwatch.SWCanvas(); jf.getContentPane().add(c1.getChildComponent()); jf.pack(); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jf.setVisible(true); }
J'ai trouvé pourquoi le chargement est si long chez moi. :yaisse2:
Voici les requetes HTTP envoyées par mon PC lorsque je charge la page de la deémo "EffectsPlayground":
vous remarquerez que mes navigateurs (Opera, FF et IE) demandent les fichiers *.class directement au site de Sun ! 8O !! A mon avis ce n'est pas bien normal. :PCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 http://javafx.com/samples/EffectsPlayground/index.html http://java.com/js/deployJava.js http://weblogs.java.net/images/people/chris_campbell.jpg http://javafx.com/samples/EffectsPlayground/java/lang.class http://www.sun.com/share/op/oo_engine.js http://www.sun.com/share/op/oo_conf_en-US.js http://dl.javafx.com/javafx-loading-100x100.gif http://www.sun.com/share/op/en-US/black_oo.gif http://www.sun.com/share/op/en-US/black_comment.gif http://www.sun.com/share/op/en-US/black_fb_en-US.gif http://www.sun.com/share/op/en-US/black_popns_en-US.gif http://www.sun.com/share/op/en-US/black_dot.gif http://www-cdn.sun.com/share/metrics/metrics_group1.js http://metrics.sun.com/b/ss/sunglobal,sunjavafx/1/H.14/s99524681204929?[AQB]&ndh=1&t=9/11/2008%2010%3A11%3A55%202%20-60&vmt=48D270F2&ce=UTF-8&pageName=javafx%3A/samples/effectsplayground/&g=http%3A//javafx.com/samples/EffectsPlayground/index.html&ch=javafx%3Asamples%3Aeffectsplayground&server=javafx.com&h1=javafx%3Asamples%3Aeffectsplayground&c2=javafx%3A&c33=Group1-v3.2&v35=javafx.com/samples/EffectsPlayground/index.html&c36=javafx.com/samples/EffectsPlayground/index.html&s=1280x1024&c=32&j=1.6&v=Y&k=Y&bw=818&bh=688&p=Microsoft%u00AE%20Windows%20Media%20Player%20Firefox%20Plugin%3BWindows%20Media%20Player%20Plug-in%20Dynamic%20Link%20Library%3BShockwave%20Flash%3BMicrosoft%AE%20DRM%3BAdobe%20SVG%20Viewer%20Plugin%3B&[AQE] http://dl.javafx.com/jogl.jnlp?version-id=1.1.1 http://dlc-cdn.sun.com/javafx/javafx-loading-100x100.gif http://www.sun.com/share/op/en-US/black_dot.gif http://dlc-cdn-rd.sun.com/c1/javafx/javafx-loading-100x100.gif?e=1228814216&h=80c40b55c39bcccdede7f7313df504e6 http://dl.javafx.com/gluegen-rt.jnlp?version-id=1.0b06 http://dl.javafx.com/gluegen-rt-natives-windows-i586__V1.0b06.jar http://dlc-cdn.sun.com/javafx/gluegen-rt-natives-windows-i586__V1.0b06.jar http://dlc-cdn-rd.sun.com/c1/javafx/gluegen-rt-natives-windows-i586__V1.0b06.jar?e=1228814221&h=56b54912b56364fb5b58062430657328 http://dl.javafx.com/Decora-D3D-natives-windows-i586__V1.0.0.jar http://dlc-cdn.sun.com/javafx/Decora-D3D-natives-windows-i586__V1.0.0.jar http://dlc-cdn-rd.sun.com/c1/javafx/Decora-D3D-natives-windows-i586__V1.0.0.jar?e=1228814223&h=20f7c58d003120d92132fd22cc31deeb http://dl.javafx.com/Decora-SSE-natives-windows-i586__V1.0.0.jar http://dlc-cdn.sun.com/javafx/Decora-SSE-natives-windows-i586__V1.0.0.jar http://dlc-cdn-rd.sun.com/c1/javafx/Decora-SSE-natives-windows-i586__V1.0.0.jar?e=1228814226&h=eb2b9de8d497d9241c9283d4c58e030f http://dl.javafx.com/jogl-natives-windows-i586__V1.1.1.jar http://dlc-cdn.sun.com/javafx/jogl-natives-windows-i586__V1.1.1.jar http://dlc-cdn-rd.sun.com/c1/javafx/jogl-natives-windows-i586__V1.1.1.jar?e=1228814232&h=d1c76850f92a54ccb0c1d88fb4025436 http://dl.javafx.com/jmc-natives-windows-i586__V1.0.0.jar http://dlc-cdn.sun.com/javafx/jmc-natives-windows-i586__V1.0.0.jar http://dlc-cdn-rd.sun.com/c1/javafx/jmc-natives-windows-i586__V1.0.0.jar?e=1228814236&h=46d78af6290a3c05018b495bf6d320dc http://dl.javafx.com/javafx-rt__V1.0.0.jar http://dlc-cdn.sun.com/javafx/javafx-rt__V1.0.0.jar http://dlc-cdn-rd.sun.com/c1/javafx/javafx-rt__V1.0.0.jar?e=1228814250&h=b1a0730432be052bf4f0f930cfc8389f http://dl.javafx.com/jmc__V1.0.0.jar http://dlc-cdn.sun.com/javafx/jmc__V1.0.0.jar http://dlc-cdn-rd.sun.com/c1/javafx/jmc__V1.0.0.jar?e=1228814300&h=5cf4128cd330205fb215e6a04d6946e4 http://dl.javafx.com/Decora-SSE__V1.0.0.jar http://dlc-cdn.sun.com/javafx/Decora-SSE__V1.0.0.jar http://dlc-cdn-rd.sun.com/c1/javafx/Decora-SSE__V1.0.0.jar?e=1228814310&h=53d87fc88515001236b7cf0b8d61ceed http://dl.javafx.com/Decora-HW__V1.0.0.jar http://dlc-cdn.sun.com/javafx/Decora-HW__V1.0.0.jar http://dlc-cdn-rd.sun.com/c1/javafx/Decora-HW__V1.0.0.jar?e=1228814315&h=d3c4a71b3e786413911dc2564423b570 http://dl.javafx.com/Decora-D3D__V1.0.0.jar http://dlc-cdn.sun.com/javafx/Decora-D3D__V1.0.0.jar http://dlc-cdn-rd.sun.com/c1/javafx/Decora-D3D__V1.0.0.jar?e=1228814323&h=e47be48c777400e84b9591fed0e6ac13 http://dl.javafx.com/emptyJarFile-1228813915519__V1.0.0.jar http://javafx.com/samples/EffectsPlayground/com/sun/java/browser/plugin2/liveconnect/v1/InvocationDelegate.class http://javafx.com/samples/EffectsPlayground/META-INF/services/com.sun.javafx.runtime.RuntimeProvider http://javafx.com/samples/EffectsPlayground/META-INF/services/javax.imageio.spi.ImageOutputStreamSpi http://javafx.com/samples/EffectsPlayground/META-INF/services/javax.imageio.spi.ImageWriterSpi http://javafx.com/samples/EffectsPlayground/META-INF/services/javax.imageio.spi.ImageReaderSpi http://javafx.com/samples/EffectsPlayground/META-INF/services/javax.imageio.spi.ImageInputStreamSpi http://javafx.com/samples/EffectsPlayground/META-INF/services/javax.imageio.spi.ImageTranscoderSpi http://javafx.com/samples/EffectsPlayground/com/sun/java/swing/SwingUtilities3.class http://javafx.com/samples/EffectsPlayground/org/jdesktop/animation/timing/Animator.class
L'enquete continue...
Bon, j'ai trouvé la cause du problème... Tout ça c'est la faute d'Opera. :evilred:
L'utilisation de Java sur Opera se fait a travers un wrapper spécifique "opera.jar". Visiblement, leur AppletClassLoader ne gère pas trop bien les accès via un proxy :aie:. Du coup, c'est un peu le bazar dans le cache de fichiers et les appels suivants (FF, IE) ont aussi du mal.
Bref, un petit delete du répertoire "%USERPROFILE%\Sun" et l'utilisation exclusive de FF ou IE et c'est bon. :yaisse2:
Pour opera... bah on attendra la version 10 en priant...
Les applets JavaFx se chargent a vitesse normale (sensiblement aussi vite que du flash) et la techno de Sun remonte dans mon estime. :king:
Dans le domaine des questions, deux autres ^^ :
- the Register relève le manque d'outils graphiques pour JavaFX, genre un JavaFX Matisse. Est ce prévu dans les cartons ?
- pourquoi ce choix de Sun de partir sur un nouveau langage ? De plus, tel que je le comprends, JavaFX offre des possibilités que n'offre pas Java tout court.. Est il envisagé de les "back porter" un jour ou l'autre ?
++
Ils ont mis le focus sur les designers pour le moment. Donc, ils ont donné la priorité aux outils d'adobe (Photoshop et autre).
Pour les développeurs, il n'y a pas encore de truc semblable à JavaFX Matisse.
Meme pas un embrillon (?? désolé pour l'orthographe) .
Mais sous NetBeans, avec le preview et la palette, t'arrives déjà à quelque chose de bien. Mais c'est pas du wysiwyg à proprement parlé. Tu modifies du code et tu visualises directement les changements apportés dans ton code.
Difficile d'avoir une réponse vraiment très claire et précise à ce sujet. Mais en gros, c'est Chris Oliver qui a créé ce langage durant son temps libre. La boite dans laquelle il travaillait a été racheté par Sun, qui encourage la culture du blog. Il a donc créé un blog et a commencé à parler de ce qu'il faisait. Ca a commencé à faire du bruit, du buzz. Sun a remarqué que la communauté semblait s'intéresser à cela. Puis il a fait une présentation de son langage à JavaOne, et voilà.Citation:
- pourquoi ce choix de Sun de partir sur un nouveau langage ?
Disons que la syntaxe de JavaFX est plus appropriée pour ces possibilités et que la syntaxe du langage Java est trop lourde et verbeuse pour que ce soit utilisable aussi facilement qu'en JavaFX. Mais si mes souvenirs sont bons, j'ai lu quelque part sur un blog qu'ils avaient backporté certains trucs. Mais c'est toujours qu'un prototype. Rien d'officiel pour le moment.Citation:
De plus, tel que je le comprends, JavaFX offre des possibilités que n'offre pas Java tout court.. Est il envisagé de les "back porter" un jour ou l'autre ?
++
Une bonne nuit de sommeil (he pour une fois) et 12h plus tard toujours rien de neuf cote installation du plugin de NetBeans... enfin si une crise de nerfs et quelques cheveux en moins :mouarf:
http://forums.netbeans.org/viewtopic.php?p=18164#18164
J'ai eu le même problème au boulot, je pense que c'est le proxy qui pour une raison ou une autre n'aime pas ça. Je l'ai résolu en téléchargeant le package Netbeans spécial JavaFX. Si il voit que Netbeans est déjà installé, il n'installe que les plugins nécessaires.Citation:
Une bonne nuit de sommeil (he pour une fois) et 12h plus tard toujours rien de neuf cote installation du plugin de NetBeans... enfin si une crise de nerfs et quelques cheveux en moins
http://forums.netbeans.org/viewtopic.php?p=18164#18164
Concernant l'appel de JavaFx depuis Java.
JavaFx n'ayant pas la notion d'interface, on ne peut utiliser un pattern Listener.
Par contre, si j'ai bien suivi, on peut étendre des classes Java en JavaFx.
Une solution, a tester, je ne peux pas pour l'instant, serait d'avoir une classe abstraite qui implémente votre Listener et d'étendre cette classe abstraite en JavaFx (comme on fait avec les Adapter en awt)
Quelqu'un peut tester?
salut
Petite revue de presse :
http://createdigitalmotion.com/2008/...ly-incomplete/
=> C'est entre critiques et appréciations, intéressant (à remonter à la Dream Team ?;))
Assez long par contre, dur de faire un résumé lui rendant bien grace. En substance :
Positif : gestion du temps facile à coder, 2D (mais c'est le mini syndical), intégration à Netbeans (gratuit !) et à des outils de design, capacité en termes de son/images, intégration Java (mais pas assez mise en avant, alors que c'est son point fort)
En problématique :
- c'est l'inconnu sur la 3D
- pas d'API réellement son et vidéos (modifications à la volée ou de filtres par exemple)
- c'est beta au mieux
- c'est seulement une espèce d'open source (manque de clarté de ce côté là)
- pas de version mobile (et on attend linux, je sais de quoi je parle ;))
puis :
http://www.theregister.co.uk/2008/12/08/javafx_review/
=> + CSS, - pas d'éditeur, incertain sur le langage JavaFx en lui même, Swing a toujours un avenir et au final :
But despite these concerns, the platform should have a bright future - as long as Sun can plug the gaps and bring the next update to market significantly faster than 1.0.
Autrement dit ça devrait aller bien si Sun comble les trous et livre rapidement la prochaine version.
J'avais prévenu, c'est petit :aie:
Je retourne à mes pénates !
@+
Vi mais vu la peu d'erreurs/logs retournes par NetBeans, on n'arrive pas a determiner si c'est un probleme du proxy du lieu de travail ou du FAI (on est connecte sur le meme FAI et ca deconne aussi chez moi donc on privilegie la derniere hypothese).
Donc c'est installe et ca marche bien :king: meme si la resolution du probleme n'est pas forcement des plus satisfaisantes (que se passera-t-il si le plugin est mis-a-jour par exemple ?).
Donc quelques petits tests et autres remarques et deja un bug dans NetBeans :
1) quand je clique sur le bouton Stop pour arreter le run, le bouton se desactive, le bouton Start s'active... mais la fenetre de l'application JavaFX reste active et il faut que je la ferme manuellement.
2) C'est moi ou le designer graphique present dans le plugin de la version beta a tout bonnement disparu ? (justement l'article de The Register indique qu'on peut prendre les composants sur la palette et... les lacher dans le code... /doh !).
3) la javafxdocview est une fenetre separee de la javadocview ; pourquoi pas.
Cependant, elle ne semble pas vouloir fonctionner correctement : si la doc de Stage s'affiche bien, impossible d'avoir la doc de StageStyle par exemple.
4) la completion ne fonctionne pas toujours, ainsi NetBeans a franchement du mal a me sortir les trois constantes de la classe/enum StageStyle.
5) la transparence des fenetres ne semble pas fonctionner correctement sur mon systeme. Ainsi en faisant :
La fenetre est bien non-decoree mais est toujours opaque (elle est egalement opaque si on revient au style par defaut).Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Stage { title: "Application title" width: 250 height: 80 style: StageStyle.TRANSPARENT opacity: 0.2 scene: Scene { content: Text { font: Font { size: 24 } x: 10, y: 30 content: "Application content" } } }
poutant un :
renvoie bien :Code:println(System.getProperty("java.version"));
Note : LOL, c'est la premiere fois depuis 11 ans que je dois faire unCode:1.6.0_10
:mouarf:Code:import java.lang.System;
Si j'execute la version applet ou les version Webstart en utilisant le HTML* ou le JNPL* produit par NetBeans, la il utilise le JRE du systeme (j'ai modifie l'application pour que la version de Java s'affiche dans le Text) mais toujours point de transparence.
*voir point 7.
6) ce qui amene a la reflexion suivante : dans NetBeans, comment dire au runtime JavaFX de NetBeans d'utiliser java 1.6.0_11 a la place de la 1.6.0_10 ? :bug:
De plus la ligne de commande utilisee par NetBeans a l'execution montre qu'on est toujours en mode 1.5 :
J'ai rajoute a NetBeans le JavaFX SDK que j'avais manuellement installe separement mais ce dernier continue a utiliser la 1.6.0_10.Code:executing commandline: [C:\Program Files\NetBeans 6.5\javafx2\javafx-sdk1.0\bin\..\bin\javafxc.exe, -profile, desktop, -target, 1.5, -g, [...]
8) qu'en est-il de la distribution ? On se retrouve avec un JAR, 2 JNPL et 1 HTLM. Or comme quelqu'un l'a deja fait remarque, on ne peut pas lancer l'application en double-cliquant sur le JAR ("[JAVAFX] Soucis pour exécuter mon jar ") car les runtimes JavaFX ne sont en fait pas installes dans le JRE...
Et ca, ce n'est pas glop !Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/javafx/runtime/FXObject at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$000(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$000(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) Caused by: java.lang.ClassNotFoundException: com.sun.javafx.runtime.FXObject at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) ... 24 more Could not find the main class: test.Main. Program will exit.
Allez on continue :mrgreen: :
J'ai trouve que ca manquait de gaphismes alors j'ai essaye d'inclure une image PNG que j'ai mis dans le meme package que ma classe/mon script et j'ai utilise la macro __DIR__ pour referencer le chemin (comme cela est indique dans les exemples).
Sous NetBeans aucune image (et le chemin du fichier est jar:file:/C:/Documents%20and%20Settings/FabriceB/Desktop/JavaFX/04..Drawing/dist/04Drawing.jar!/test//fbavatar.png), de meme en passant par le HTML ou par le JNPL (note : l'image est bien dans le JAR). Or en passant via la ligne de commande et en lancant javafx test.Main dans le repertoire build/compiled du projet tout s'affiche correctement (chemin : file:/C:/Documents%20and%20Settings/FabriceB/Desktop/JavaFX/04..Drawing/build/compiled/test//fbavatar.png)... Hum que ca rappelle de bons souvenirs tout ca :roll:.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Stage { title: "Application title" width: 250 height: 80 //style: StageStyle.TRANSPARENT opacity: 0.2 title: System.getProperty("java.version") scene: Scene { content: ImageView { image: Image { url: "{__DIR__}/fbavatar.png" } } } } println( "{__DIR__}/fbavatar.png");
Alors la bonne nouvelle c'est que NetBeans comprends le FXZ, ainsi si on fait ce dessin en SVG dans Inkscape :
Pièce jointe 39252
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186 <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!-- Created with Inkscape (http://www.inkscape.org/) --> <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="200" height="75" id="svg2696" sodipodi:version="0.32" inkscape:version="0.46+devel, revision 20337" version="1.0" sodipodi:docname="Slider.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape" inkscape:export-filename="C:\Documents and Settings\FabriceB\Desktop\JavaFX\05..FXZ\art\Slider.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90"> <defs id="defs2698"> <linearGradient inkscape:collect="always" id="linearGradient4263"> <stop style="stop-color:#eeeeec;stop-opacity:1" offset="0" id="stop4265" /> <stop style="stop-color:#2e3436;stop-opacity:1" offset="1" id="stop4267" /> </linearGradient> <linearGradient inkscape:collect="always" id="linearGradient4233"> <stop style="stop-color:#555753;stop-opacity:1" offset="0" id="stop4235" /> <stop style="stop-color:#d3d7cf;stop-opacity:1" offset="1" id="stop4237" /> </linearGradient> <linearGradient inkscape:collect="always" xlink:href="#linearGradient4233" id="linearGradient4239" x1="100" y1="35" x2="100" y2="45" gradientUnits="userSpaceOnUse" /> <linearGradient inkscape:collect="always" xlink:href="#linearGradient4263" id="linearGradient4269" x1="90" y1="25" x2="115" y2="55" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.8,0,0,1,18,0)" /> <filter inkscape:collect="always" id="filter4313" x="-0.15" width="1.3" y="-0.1" height="1.2"> <feGaussianBlur inkscape:collect="always" stdDeviation="1.25" id="feGaussianBlur4315" /> </filter> </defs> <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="4" inkscape:cx="93.617245" inkscape:cy="59.692116" inkscape:current-layer="layer1" showgrid="true" inkscape:document-units="px" inkscape:grid-bbox="true" borderlayer="true" inkscape:snap-guide="true" inkscape:window-width="1680" inkscape:window-height="1024" inkscape:window-x="1276" inkscape:window-y="-4" showguides="true" inkscape:guide-bbox="true" inkscape:showpageshadow="true"> <inkscape:grid type="xygrid" id="grid2706" empspacing="1" visible="true" enabled="true" dotted="false" spacingx="10px" spacingy="10px" color="#ff0000" opacity="0.1254902" empcolor="#ff0000" empopacity="0.25098039" /> <inkscape:grid type="xygrid" id="grid2708" empspacing="5" visible="true" enabled="true" /> <inkscape:grid type="xygrid" id="grid2712" empspacing="2" visible="true" enabled="true" spacingx="50px" spacingy="50px" empcolor="#00640b" empopacity="0.66666667" color="#00640b" opacity="0.47058824" /> </sodipodi:namedview> <metadata id="metadata2701"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> <dc:title></dc:title> </cc:Work> </rdf:RDF> </metadata> <g id="layer1" inkscape:label="Layer 1" inkscape:groupmode="layer"> <path style="color:#000000;fill:url(#linearGradient4239);fill-opacity:1;fill-rule:nonzero;stroke:#555753;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;stroke-opacity:1" d="m 25,35 c -2.76,0 -5,2.24 -5,5 0,2.76 2.24,5 5,5 l 150,0 c 2.76,0 5,-2.24 5,-5 0,-2.76 -2.24,-5 -5,-5 L 25,35 z" id="JFX:Track" inkscape:label="#path4195" sodipodi:nodetypes="csccscc" /> <rect style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;opacity:0.50000000000000000;filter:url(#filter4313)" id="JFX:Knob_shadow" width="20" height="30" x="94" y="29" rx="5" ry="5" inkscape:label="#rect4243-2" /> <rect style="color:#000000;fill:url(#linearGradient4269);fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="JFX:Knob" width="20" height="30" x="90" y="25" rx="5" ry="5" inkscape:label="#rect4243" /> <path style="opacity:0.50000000000000000;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;stroke-opacity:0.49803922" d="M 22,15 C 10.96,15 2,26.2 2,40 2,53.8 10.96,65 22,65 l 156,0 c 11.04,0 20,-11.2 20,-25 0,-13.8 -8.96,-25 -20,-25 L 22,15 z" id="JFX:Border" sodipodi:nodetypes="csccscc" inkscape:label="#rect4399" /> </g> </svg>
Une fois passe a la moulinette de la Production Suite nous obtenons donc un fichier FXZ contenant un fichier FXD que nous pouvons ouvrir avec NetBeans :
Pièce jointe 39253
Note : j'ai donc nomme mes groupes et objets dans Inkscape. Dans le convertisseur j'ai decoche la case Preserve "JFX:" IDs only car sinon il ne me preservait pas les nom (meme en les prefixant par JFX:, mais bon je fais ca vite fait, et les fausses manips sont courantes :P). Pour rappel le module d'export propre a Inkscape (dispo sur le trunk ou les daily builds) genere quand a lui du .FX avec du code executable (mais le code genere est compatible avec la pre-release uniquement).
Il est possible de voir directement le rendu du dessin dans NetBeans en cliquant sur le bouton Preview et de voir son code en cliquant sur Code. Le fichier produit est un peu plus leger que le .SVG d'origine.
Par contre il faut bien faire attention a ce que certains effets que permet Inkscape (et probablement The Gimp, Illustrator et Photoshop) comme un flou gaussien sur l'objet Knob_shadow (l'ombre portee du bouton) ne sont pas traduits en JavaFX. Vous devrez donc faire attention a ce que votre designer vous produit... Pour ce genre de choses je crains qu'il ne faille pour le moment passer par du bitmap...Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100 /* * Generated by JavaFX svg2fx tool. * Created on Thu Dec 11 13:08:12 SBT 2008. */ //@version 1.0 Group { content: [ Group { id: "layer1" content: [ SVGPath { content: "m 25,35 c -2.76,0 -5,2.24 -5,5 0,2.76 2.24,5 5,5 l 150,0 c 2.76,0 5,-2.24 5,-5 0,-2.76 -2.24,-5 -5,-5 L 25,35 z" fill: LinearGradient { proportional: false startX: 100 endX: 100 startY: 35 endY: 45 stops: [ Stop { offset: 0.0 color: Color.rgb(0x55, 0x57, 0x53, 1.0) }, Stop { offset: 1.0 color: Color.rgb(0xd3, 0xd7, 0xcf, 1.0) } ] }, opacity: 1 fillRule: FillRule.NON_ZERO id: "Track" stroke: Color.rgb(0x55, 0x57, 0x53, 1.0) strokeWidth: 1.0 }, Rectangle { fill: Color.rgb(0x00, 0x00, 0x00, 1.0) opacity: 1 fillRule: FillRule.NON_ZERO height: 30.0 id: "Knob_shadow" opacity: 0.50000000000000000 arcWidth: 5.0 arcHeight: 5.0 strokeWidth: 1.0 width: 20.0 x: 94.0 y: 29.0 }, Rectangle { fill: LinearGradient { transforms: [ Transform.affine(0.8, 0.0, 0.0, 1.0, 18.0, 0.0) ] proportional: false startX: 90 endX: 115 startY: 25 endY: 55 stops: [ Stop { offset: 0.0 color: Color.rgb(0xee, 0xee, 0xec, 1.0) }, Stop { offset: 1.0 color: Color.rgb(0x2e, 0x34, 0x36, 1.0) } ] }, opacity: 1 fillRule: FillRule.NON_ZERO height: 30.0 id: "Knob" arcWidth: 5.0 arcHeight: 5.0 stroke: Color.rgb(0x2e, 0x34, 0x36, 1.0) strokeWidth: 1.0 width: 20.0 x: 90.0 y: 25.0 }, SVGPath { content: "M 22,15 C 10.96,15 2,26.2 2,40 2,53.8 10.96,65 22,65 l 156,0 c 11.04,0 20,-11.2 20,-25 0,-13.8 -8.96,-25 -20,-25 L 22,15 z" fill: null opacity: 1 fillRule: FillRule.NON_ZERO id: "Border" opacity: 0.50000000000000000 stroke: Color.rgb(0x00, 0x00, 0x00, 0.49803922) strokeWidth: 1.0 } ] } ] }
A ce propos, dans JavaFX, il est possible de creer un gradient dont les fractions ne sont pas strictement croissantes (ce qui fait un stop), ex : du Blanc a 0.5 suivit de Noir a 0.5. Normal me direz-vous, en effet, n'importe quel editeur de dessin le permet de faire ce genre de chose et cela provoque un passage net de la premiere couleur a la seconde.
Cependant, dans Java2D, l'implementation des MultipleGradientPaint telle que rajoutee dans Java 1.6 ne supporte que les fractions strictement croissantes... une exception est meme lancee si on se permet de deroger a cette regle lors de la definition du gradient ; or il semble que cela ne pose aucun probleme pour JavaFX ! Il accepte une telle defintion sans broncher...
PAR CONTRE le paint resultant sera completement noir ! Il y a donc anguille sous roche et il faudra egalement faire attention a ce genre de choses. Notez qu'il est tout a fait possible de modifier le gradient directement dans NetBeans en editant le source du FXD (par exemple en autant quelques decimales a un des stops) et on aura alors un affichage du FXZ/FXD correct immediatement dans la preview.
Hum... peut-etre serait-il temps de creer une entree dans la bug database sur cette limitation de Java2D.
Il est egalement possible de double-cliquer sur le .FXZ pour l'ouvrir dans le JavaFX Graphics Viewer qui est un outil de la Production Suite (ne paniquez pas si un gros oeil s'affiche pendant quelques secondes sur votre ecran, c'est le logo de l'application).
Pièce jointe 39254
Que ce soit dans cette application ou dans NetBeans on peut se rendre compte des differences entre la version SVG et la version JavaFX :
- pas de flou pour l'ombre du bouton.
- la definition de la geometrie page telle que definie dans le .SVG n'est pas conservee. Donc au choix il faudra bien caler le composant sur (0,0) ou alors mettre un calque transparent qui fait toute la geometrie desiree (je m'etais replie sur cette solution quand je bidouillait le convertisseur d'icones de Kirill car Batik ne conservait pas cette info non-plus).
Bon maintenant il va falloir aller chercher cette doc plutot absente concernant le package javafx.fxd pour savoir comment manipuler tout cela...
Voir : http://www.javafx.com/docs/gettingst...duction_suite/
EDIT - seconde bonne nouvelle :yaisse2: ! Quand on ouvre un FXZ/FXD, NetBeans dispose de l'action Generate UI Stub (dernier bouton en haut de la fenetre associee au fichier) ce qui permet de creer automatiquement du code permettant de charger puis de manipuler le contenu du fichier :
Reste que... reste que le package javafx.fxd n'existe pas................................. :bug:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 /* * Generated by JavaFX Production Suite NetBeans plugin. * SliderUI.fx * * Created on Thu Dec 11 14:04:20 SBT 2008 */ package test; import java.lang.Object; import java.lang.System; import java.lang.RuntimeException; import javafx.scene.Node; import javafx.fxd.UiStub; public class SliderUI extends UiStub { override public var url = "{__DIR__}Slider.fxz"; public var Border: Node; public var Knob: Node; public var Knob_shadow: Node; public var Track: Node; public var layer1: Node; override protected function update() { lastNodeId = null; try { Border=getNode("Border"); Knob=getNode("Knob"); Knob_shadow=getNode("Knob_shadow"); Track=getNode("Track"); layer1=getNode("layer1"); } catch( e:java.lang.Exception) { System.err.println("Update of the attribute '{lastNodeId}' failed with: {e}"); throw e; } } }
Pfffff dire que d'ici quelques temps c'est nous qui devrons repondre a ces questions que poseront nos utilisateurs :P
Il faut donc, dans NetBeans, rajouter la lib JavaFX FXD 1.0 au projet. Alternativement le fichier javafx-fxs-1.0.jar se trouve dans le Production Suite (et euh.... pourquoi cette lib ne fait pas parti du JavaFX SDK ou des runtimes ???? Le projet Nile n'est-il donc pas associe au coeur de JavaFX ?).
On tombe alors sur un autre bug du plugin JavaFX de NetBeans qui est que celui-ci continue a colorier en rouge l'interface de partout en disant que le package est absent. Cependant ca n'empeche pas de compiler et d'executer le projet ainsi modifie :
Ce qui affiche nos groupes graphiques a l'ecran.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 /* * Main.fx * * Created on Dec 11, 2008, 1:00:34 PM */ package test; import javafx.scene.Scene; import javafx.stage.Stage; /** * @author fabriceb */ Stage { title: "FXD test" width: 250 height: 120 scene: Scene { content: SliderUI { } } }
EDIT - Et voici un exemple tres simpliste qui premet d'interragir avec la reglette. Dans notre Scene on cree un nouveau Group qui contient notre SliderUI par dessus laquelle on affiche un Rectangle transparent qui se chargera des interractions de la souris (c'est inpire de ce qui est fait dans les didacticiels du SDK et de la Production Suite).
Quand on clique sur le rectangle (si vous voulez le voir apparaitre a l'ecran, commentez la ligne fill: Color.TRANSPARENT) cela deplace le noeud Knob du slider de 20 pixels vers la droite. Evidement dans cette exemple le bouton fini par sortir de la reglette puis de l'ecran au bout d'un certain temps mais bon vous aurez compris le principe : il est ainsi possible de creer plutot rapidement de nouveaux composants !!! Apres si on regle le probleme des libs a importer pour que ca marche... on peut rajouter des tas de trucs dans Swing :yaisse2:.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 package test; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; import javafx.stage.Stage; import javafx.scene.input.MouseEvent; /** * @author fabriceb */ var slider = SliderUI{} var dragRect= Rectangle { x: slider.Track.boundsInLocal.minX as Integer; y: slider.Track.boundsInLocal.minY as Integer; width: slider.Track.boundsInParent.width; height: slider.Track.boundsInParent.height; fill: Color.TRANSPARENT onMousePressed: function( e: MouseEvent ):Void { //println("Mouse pressed!"); var offset = 20; if (e.secondaryButtonDown) { offset = -offset; } slider.Knob.translateX += offset; slider.Knob_shadow.translateX += offset; } onMouseDragged: function( e: MouseEvent ):Void { //println("Mouse dragged!"); } } Stage { title: "FXD test" width: 250 height: 120 scene: Scene { content: Group { content: [slider, dragRect] } } }
Bon apres faut voir si l'usage de tout cela est bien fait de maniere correcte puisque c'est egalement tout nouveau pour moi :aie:.
Et sinon j'ai reussit a completement crasher NetBeans puis mon PC a force de faire des "Fix import" il a vraiment du mal parfois avec ca. Il est clair que le Plugin n'est pas assez mature, tout comme il est clair que les outils purement graphiques manquent...
Perso j'ai fait un petit projet de test :
En ajoutant toutes les lib que j'ai pu trouver dans "C:\Program Files\JavaFX\javafx-sdk1.0\lib".Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 package testjavafx; import java.io.InputStreamReader; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; /** * * @author ludovic */ public class Main { /** * @param args the command line arguments */ public static void main(String[] args) throws Exception { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByExtension("javafx"); InputStreamReader reader = new InputStreamReader(Object.class.getResourceAsStream("/testjavafx/unfichier.fx")); Object scriptReturnValue = engine.eval(reader); System.out.println("FX done : "+scriptReturnValue); } }
Références :
- http://java.sun.com/developer/techni...ava/index.html
- http://blogs.sun.com/michaelheinrich...bjects_in_java
- http://blogs.sun.com/michaelheinrich...bjects_in_java
Voilà si ça peut t'aider... :D
Merci, mais perso je pense plus passer par la version compilée que par la version interprétée même si cette dernière a également son intérêt ^^.
Tiens, justement quand on utilise du FXZ/FXD on interprète (indirectement via la classe UiStub) du JavaFX dans du JavaFX compilé :mouarf:.
Bonjour, j'ai commencé a tester JavaFx (la formation du site officiel) et ça m'a vraiment plu, en plus, ça semble avoir un bel avenir ...
Mais une question m'est venu a l’esprit, que faut t'il pour héberger les animations ?? Quels serveurs plus exactement ?? Je pensais mettre en ligne mes réalisations ... (je suis débutant, alors excusez mes questions un peu ...:oops:)
Merci d'avance pour vos réponses :)
A priori, n'importe quel serveur web peut faire l'affaire. Il faut juste rajouter la balise qui va bien dans ta page web si tu fais une applet.
Bonjour,
Existe-t-il un plugin JavaFX sous Eclipse ?
Prochainement, Prévoyez-vous de faire un article sur l'utilisation du langage JavaFX sur developpez.com ?
Merci.
Bonjour, comme tu peux le voir dans ce sujet, des membres (de l'équipe et d'autres) s'attachent pour l'instant à prendre en main la techno. Il est impossible de faire un article si on ne sait pas de quoi on parle ;).
Mais je ne doute pas que cela sera fait quand le sujet sera un peu mieux maitrisé.
Un espace dédié à JavaFX devrait également arriver sur le forum.
Petite précision sur mac os x et java.
Java 1.6 n'est disponible qu'avec la dernière version d'osx (leopard). Et une upgrade de version chez Mac ce n'est pas gratuit : ça revient à racheter carrément une licence (100 et quelques euros).
Donc oui javafx est présent sur Mac, mais uniquement pour ceux qui ont un mac récent...
Oui mais à priori JavaFX marche sur une JRE 1.5, donc également sous Tiger.