Affichage des articles dont le libellé est Plateforme Java. Afficher tous les articles
Affichage des articles dont le libellé est Plateforme Java. Afficher tous les articles

dimanche 21 juin 2009

Les Cast Codeurs Podcast

En attendant d'avoir le temps et le courage de publier la suite de l'échiquier en JavaFX, voici un petit billet pour parler d'un podcast sur la plateforme Java que j'ai découvert récemment, qui est très intéressant et surtout - ce qui n'est pas si commun - en français !
Je veux parler des Cast Codeurs Podcast. En allant sur leur site à l'occasion de ce billet, j'ai vu que le sixième épisode était sorti aujourd'hui. J'étais tombé dessus un peu par hasard sur iTunes, lors d'une recherche sur Java il y a peut-être 3 semaines. Cela m'a fait pensé à une version française de the JavaPosse (et je le pense comme un compliment) : les participants savent de quoi ils parlent (du beau monde de la communauté Java française : Emmanuel Bernard, Guillaume Laforge, Antonio Goncalves, Vincent Massol), cela se passe dans la bonne humeur, les informations techniques et les news sur la plateforme Java sont réellement intéressantes pour un développeur Java. Bref un podcast indispensable qui a pour une fois la bonne idée d'être en français !
Le site : http://lescastcodeurs.com/

dimanche 17 mai 2009

Un échiquier en JavaFX

Dans ce billet, un petit programme en JavaFX qui dessine en un échiquier. Ce petit programme était l'occasion de s'essayer à utiliser un CustomNode (qui ici correspondra à l'échiquier). Et quand il y a quelques années j'enseignais la programmation en Java, le dessin d'un échiquier était un des premiers TP que je donnais aux étudiants quand nous abordions AWT/Swing, parce que c'est simple à mettre en oeuvre.

Ci-après la copie d'écran du programme :



Ce programme est composé de 2 fichiers : ChessBoardNode.fx qui contient la classe ChessBoardNode qui étend la classe CustomNode et Main.fx qui contient notre Stage et utilise le ChessBoardNode.

Tout d'abord ChessBoardNode.fx :

Tout ceci est assez simple, mais revenons sur quelques points :
- La classe CustomNode est une classe abstraite et il faut redéfinir la fonction "create" ; attention en JavaFX quand on redéfinit il faut utiliser le mot clé override.
Cette fonction create est un peu comme la méthode paint pour les composants graphiques en Java/Swing : en la redéfinissant on indique comment le composant doit être "peint". Cette méthode doit retourner un objet de type Node. Ici on créé plusieurs Rectangle (en fonction du nombre de lignes et du nombre de cases par ligne, valeurs définies dans les attributs) pour lesquels on alterne les couleurs parmi 2 et qui forment un Group, sous-classe de Node.

On remarquera qu'un certain nombre d'attributs ont été définis pour rendre l'échiquier plus facilement paramétrable.

Autre point, on notera ici l'utilisation du for et du if : il faut rappeler qu'en JavaFX, ce sont des expressions et qu'ils retournent un résultat.
A part cela, ce code ne pose pas de difficultés particulières.

Maintenant utilisons cette classe dans Main.fx :

On utilise directement un objet ChessBoardNode, en renseignant certains de ces attributs. On notera que l'abscisse et l'ordonnée de l'échiquier ne sont pas renseignées, pas plus d'ailleurs que la largeur ou la hauteur de la Scene ou du Stage : c'est JavaFX qui détermine tout cela en prenant les valeurs au plus juste.

Initialement, je voulais proposer une suite à ce billet sur JavaFX, en repartant de cet exemple et en l'améliorant un peu par la mise en oeuvre du "binding" de JavaFX pour obtenir simplement des petits effets sympathiques. Cependant je trouve que le format "billet de blog" n'est pas toujours idéal pour faire un texte comportant du code.

Entretemps j'ai donc créé un petit site sur Google Sites, dans lequel je reprends et complète ce billet.

dimanche 3 mai 2009

Une cardioïde en JavaFX (bis)

Quand en 2007 j'avais regardé pour la première fois JavaFX, j'avais fait un petit programme qui affichait une cardioïde.

Entre temps, JavaFX a changé (moi aussi d'ailleurs mais c'est une autre histoire :-P) et comme je suis en train de m'essayer à nouveau à JavaFX, voici une nouvelle version d'un dessin de cardioïde avec JavaFX.


Cela donne cela :


Rien de bien extraordinaire dans le code. Le Slider permet de modifier la taille du cardioïde. Sont utilisés ici les capacités de binding de JavaFX (entre le paramètre rho de la courbe paramétrique et la valeur sélectionnée par le Slider ; pour plus d'information sur la cardioïde voir http://fr.wikipedia.org/wiki/Cardio%C3%AFde).

La fonction generatePath retourne une séquence de coordonnées x et y correspondant à la cardioïde par rapport à la valeur du paramètre rho. Cette séquence de coordonnées est utilisée par la Polyline.

samedi 2 mai 2009

Introduction à JavaFX (3)

Désolé, en ce moment je m'intéresse à JavaFX et après une longue période d'inactivité sur ce blog qui faisait elle-même suite à une période d'activité très modérée, je publie coup sur coup plusieurs vidéos de Sun sur JavaFX... Je trouve que cette technologie est vraiment devenue intéressante et qu'elle mérite qu'on y jette un oeil, voire plus si affinité. Sun a quand même mi presque 2 ans à proposer quelque chose qui tienne la route face à Flex ou à Silverlight mais là la technologie commence à être mature et utilisable. L'intérêt est quand même de rester sur une plateforme Java.

Cette vidéo n'est pas vraiment une introduction. C'est plutôt une vidéo de présentation du concept de "Scene Graph", élément essentiel de JavaFX. La vidéo est courte et complète bien les 2 vidéos d'introduction de Sun publiées dans mes 2 derniers billets sur JavaFX.



La présentation dure environ 6 minutes, dont seule les 5 premières minutes ont réellement un intérêt pédagogique (c'est de bonne guerre, la fin de la présentation donne des informations sur le site www.javafx.com, et comment retrouver les informations et exemples dont il est question dans la présentation).

Cette courte vidéo présente les classes et concepts fondamentaux pour réaliser des applications graphiques avec JavaFX (ce qui est il faut bien l'avouer la raison pour laquelle en général on se penche sur JavaFX :-P).

La classe Stage représente le conteneur de haut-niveau (top-level container) qui correspond à une fenêtre classique par défaut mais peut être transparente ou sans la bordure et les autres "décorations" associées.

Un objet Stage contient un attribut scene de classe Scene. La classe Scene correspond à une surface de dessin pour y placer le contenu graphique. Un objet Scene a un attribut content qui est une séquence d'élément dans le Graph Scene (La traduction en graphe de la scène ne me plait guère est à défaut d'une qui me satisfasse, je préfère utiliser le terme anglais).

Le Graph Scene est un concept important de JavaFX : le contenu graphique est considéré comme un graphe d'éléments. Attention, il s'agit bien d'un graphe et non d'un arbre, il n'y a donc pas d'élément racine. C'est pour cela que l'on a une séquence d'éléments, pouvant eux-mêmes être constitués de séquence d'éléments.

Ces éléments graphiques peuvent être des classes Node, Group ou CustomNode.
Un Node est une feuille du graphe, c'est-à-dire qu'il ne peut pas avoir de noeud graphique fils. Par contre, tout comme les 2 autres classes, un objet Node peut avoir 0 ou 1 parent.
Les formes (Shape) et les éléments d'interface venant de Swing (slider, label, etc.) sont par exemple des Node.

Un Group est un regroupement de plusieurs Node, Group ou CustomNode. Un Group peut ainsi permettre de créer des formes complexes en regroupant plusieurs formes. De plus un objet Group permet d'appliquer un même effet à tous les élément du groupe en question. Ainsi un objet Group permet de manipuler un ensemble d'éléments graphiques comme un élément unique.

Enfin, la classe CustomNode est une classe abstraite que l'on sous-classe et dont on redéfinit (utilisation du mot clé override) la fonction create() qui définit le contenu de cet élément.

vendredi 1 mai 2009

Introduction à JavaFX (2)

Voici une vidéo d'introduction à JavaFX qui fait suite à celle que j'ai posté dans mon billet précédent sur ce sujet.

Toujours en une quinzaine de minutes, cette vidéo présente des fondamentaux de JavaFX, en ce concentrant cette fois-ci sur les éléments de base pour produire des graphiques avec JavaFX alors que la première vidéo de cette série se focalisait sur les fondamentaux du langage.

Sans remplacer les tutoriaux, ces vidéos donnent une vision synthétique et rapide des différents aspects et peuvent ainsi servir de mise en jambe ou d'aide-mémoire.



Si vous souhaitez avoir une meilleure qualité de vidéo, je vous invite à la récupérer via Miro, une petite recherche sur "JavaFX" devrait vous permettre de les trouver facilement.

dimanche 26 avril 2009

Introduction à JavaFX (1)

Voici une présentation des bases de JavaFX par Robert Eckstein de Sun.
La présentation est bien faite et en 15 minutes donne tous les éléments de base nécessaire à un développeur Java pour se faire une idée sur ce nouveau langage.



Je m'étais intéressé à JavaFX en 2007. Je n'avais pas été convaincu à l'époque par la le langage et la plateforme qui - il est vrai - venait de sortir et manquait probablement de maturité.

Récemment (on va dire que cela fait un petit mois), j'ai ré-essayé et je suis par contre cette fois séduit. De gros progrès ont été réalisés, avec Netbeans vous avez maintenant un vrai IDE pour travailler avec JavaFX (il existe également un plugin Eclipse mais je ne l'ai pas essayé). Cette fois-ci je pense que cette plateforme "RIA" devient crédible par rapport à la concurrence. Bien sûr qu'elle s'impose c'est une autre histoire mais elle a des atouts indéniables. Reste à voir également comment le rachat de Sun par Oracle fera évoluer la stratégie par rapport à cette plateforme.

Le site officiel de JavaFX, point de passage obligé, est http://www.javafx.com/.

dimanche 3 février 2008

Une initiative intéressante

J'ai découvert Xebia un peu par hasard en recherchant des vidéos sur J2EE sur YouTube : je suis tombé sur les présentations vidéos qu'ils font de leur entreprise.

En jettant un oeil à leur site institutionnel et à leur blog, je suis tombé sur le Xebia Poker Tour qui semble être une initiative ludique et intéressante : vous répondez à des questions sur Java, XML, J2EE, les méthodes agiles, etc. ce qui vous permet de recolter de l'argent fictif.

Les 50 plus riches pourront participer à une partie de poker et peut-être gagner un voyage à JavaOne ou Javapolis. Toutes les explications sur ce billet.

L'initiative est à la fois surprenante, rare et ludique, alors je vous invite à aller y faire un tour si vous êtes un expert Java/J2EE et que le poker vous branche !

NB : je n'ai aucun lien avec Xebia !

dimanche 20 janvier 2008

Un coup d'oeil sur le langage Scala

Si cela fait quelques temps que vous entendez parler régulièrement du langage Scala et que vous souhaitez quelques points d'entrée pour un savoir plus, voici quelques pistes.

Tout d'abord une courte définition de Scala reprise de Wikipédia :

Scala est un langage de programmation multi-paradigme conçu à l'EPFL pour exprimer les modèles de programmation courants dans une forme concise et élégante. Il intègre les paradigmes de programmation orientée objet et de programmation fonctionnelle, avec un typage statique.

Sur le site officiel du langage Scala (http://www.scala-lang.org/) où peuvent être trouvés bien sûr le langage lui-même mais également différents documents pour démarrer notamment un article qui fait une présentation synthétique du langage (certains passages sont assez techniques), un tutorial, un petit article d'introduction "par l'exemple" et une spécification du langage.

Sur YouTube vous pouvez trouver une présentation de Scala faite par Martin Odersky lui-même dans la série des "Google Tech Talks"

J'ai inséré la vidéo juste après dans ce billet. Cependant cette dernière dure plus d'une heure. Cela peut-être sympa de la récupérer avec Miro et de la regarder tranquillement. Cela reprend pas mal de points évoqués dans la "présentation synthétique du langage" que l'on trouve sur le site officiel : certains passages sont assez techniques et difficiles à suivre quand on n'a pas de solides bases en théorie des langages.



Scala est en ce moment évoqué régulièrement dans les épisodes du "JavaPosse", et dans l'épisode #158, les membres du JavaPosse renvoie vers un blog dédié à Scala et notamment à un billet présentant des résolutions de puzzles mathématiques dans l'esprit Scala.
L'épisode #155 est consacré à une interview de Martin Odersky.

Enfin sur Software Engineering Radio, il est également possible de trouver une interview de Martin Odersky sous forme de podcast (épisode 62).