<?xml version="1.0"?>
<rss xmlns:php="http://php.net/xsl" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Introduction à SWT - Chicoree</title><link>http://www.chicoree.fr/w/Introduction_%C3%A0_SWT</link><atom:link href="http://www.chicoree.fr/w/Introduction_%C3%A0_SWT?action=toFeed" rel="self" type="application/rss+xml"/><description><![CDATA[SWT est une bibliothèque pour créer des interfaces utilisateurs graphiques (GUI) issue du projet Eclipse. Cet article présente SWT et détaille pas à pas le fonctionnement d'une application basée sur cette bibliothèque.
]]></description><item><title>1 Motivation</title><link>http://www.chicoree.fr/w/Introduction_%C3%A0_SWT#Motivation</link><description><![CDATA[<p><a><b>Eclipse</b></a> est un environnement de développement intégré (IDE) initialement destiné au développement Java – et lui-même écrit en Java. Lorsque Eclipse est "sorti", la première chose qu'ont remarqué les utilisateurs a été la réactivité de l'interface utilisateur. En effet, "à l'époque", il était communément accepté que le prix à payer pour avoir une interface graphique portable était de sacrifier la vitesse de réaction de l'application.
</p>]]></description></item><item><title>2 Installer SWT</title><link>http://www.chicoree.fr/w/Introduction_%C3%A0_SWT#Installer_SWT</link><description><![CDATA[<p>L'origine de SWT est le projet Eclipse. Néanmoins, il n'est pas nécessaire d'avoir installé Eclipse pour utiliser une application développée avec SWT.
</p>]]></description></item><item><title>3 Hello SWT</title><link>http://www.chicoree.fr/w/Introduction_%C3%A0_SWT#Hello_SWT</link><description><![CDATA[<p>Pour commencer, nous allons créer le <i>minimum</i> nécessaire pour une application basée sur SWT. Ainsi, toute application SWT doit créer une instance de la classe <tt>org.eclipse.swt.widgets.Display</tt>. C'est cette instance qui servira à SWT d'<b>interface avec le système natif</b>. Comme tous les objets SWT qui interagissent directement avec le système hôte, il faudra penser à appeler la méthode <tt>dispose</tt> lorsqu'il ne sera plus nécessaire à l'application. Dans le cas d'une instance de la classe <tt>Display</tt>, ce sera à la fin du programme:
</p>]]></description></item><item><title>3.1 org.eclipse.swt.widgets.Display</title><link>http://www.chicoree.fr/w/Introduction_%C3%A0_SWT#org.eclipse.swt.widgets.Display</link><description><![CDATA[<p>Pour commencer, nous allons créer le <i>minimum</i> nécessaire pour une application basée sur SWT. Ainsi, toute application SWT doit créer une instance de la classe <tt>org.eclipse.swt.widgets.Display</tt>. C'est cette instance qui servira à SWT d'<b>interface avec le système natif</b>. Comme tous les objets SWT qui interagissent directement avec le système hôte, il faudra penser à appeler la méthode <tt>dispose</tt> lorsqu'il ne sera plus nécessaire à l'application. Dans le cas d'une instance de la classe <tt>Display</tt>, ce sera à la fin du programme:
</p>]]></description></item><item><title>3.2 Une fenêtre</title><link>http://www.chicoree.fr/w/Introduction_%C3%A0_SWT#Une_fen.C3.AAtre</link><description><![CDATA[<p>Pour avoir un résultat visible, le minimum à ajouter est donc de créer une <i>fenêtre</i>. Dans SWT, c'est une instance de la classe <tt>org.eclipse.swt.widgets.Shell</tt>. Mais <i>créer</i> une fenêtre ne suffit pas: il faut aussi l'<i>ouvrir</i>. Sinon elle n'est pas visible.
</p>]]></description></item><item><title>3.3 Attendre les évènements</title><link>http://www.chicoree.fr/w/Introduction_%C3%A0_SWT#Attendre_les_.C3.A9v.C3.A8nements</link><description><![CDATA[<p>Dans un programme doté d'une interface utilisateur graphique, la boucle événementielle est en quelque sorte le coeur du programme. C'est une boucle qui <i>tourne</i> en attendant un <b>événement</b> (comme par exemple une <i>action</i> de l'utilisateur). Une fois un événement reçu, celui-ci est traité par l'application. Et bien sûr, la boucle ne devrait se terminer que quand l'utilisateur a décidé de <i>quitter</i> l'application.
</p>]]></description></item><item><title>3.4 Un widget</title><link>http://www.chicoree.fr/w/Introduction_%C3%A0_SWT#Un_widget</link><description><![CDATA[<p>Bien, une fenêtre vide n'a rien de très excitant. Ajoutons donc un petit message. Tous les <b>éléments d'interface utilisateur</b> qui apparaîtront dans une fenêtre sont matérialisés sous la forme de <i>widgets</i>. Ce sont des objets dont il existe des versions spécialisées pour chaque élément qui peut apparaître dans une fenêtre (boutons, textes, menus, etc...).
</p>]]></description></item><item><title>4 Jouons un peu</title><link>http://www.chicoree.fr/w/Introduction_%C3%A0_SWT#Jouons_un_peu</link><description><![CDATA[<p>Histoire de faire quelque-chose d'un peu plus utile (enfin, juste <i>un peu</i>) avec SWT nous allons réaliser une sorte de jeu qui pose une question à l'utilisateur puis valide ou non sa réponse.
</p>]]></description></item><item><title>4.1 Structure de l'application</title><link>http://www.chicoree.fr/w/Introduction_%C3%A0_SWT#Structure_de_l.27application</link><description><![CDATA[<p>Afin de structurer un minimum le programme, nous allons aussi éviter de <i>tout mettre dans le <tt>main</tt></i>. Sans même faire intervenir SWT, on peut globalement définir notre programme grâce à la classe suivante:
</p>]]></description></item><item><title>4.2 display et shell</title><link>http://www.chicoree.fr/w/Introduction_%C3%A0_SWT#display_et_shell</link><description><![CDATA[<p>La boucle événementielle et la méthode chargée de faire le ménage à la fin de l'application sont des <i>classiques</i> de SWT:
</p>]]></description></item><item><title>4.3 Créer l'interface utilisateur</title><link>http://www.chicoree.fr/w/Introduction_%C3%A0_SWT#Cr.C3.A9er_l.27interface_utilisateur</link><description><![CDATA[<p>Maintenant le <i>gros</i> morceau: construire la fenêtre principale dans le constructeur. En réalité le code est plus <i>long</i> que <i>complexe</i>. Il crée la fenêtre, puis les différents <i>widgets</i>:
</p>]]></description></item><item><title>4.4 Gestion des événements</title><link>http://www.chicoree.fr/w/Introduction_%C3%A0_SWT#Gestion_des_.C3.A9v.C3.A9nements</link><description><![CDATA[<p>Il ne nous manque que la gestion du <i>clic</i> sur le bouton afin de valider la réponse de l'utilisateur.
</p>]]></description></item><item><title>5 A vous de jouer</title><link>http://www.chicoree.fr/w/Introduction_%C3%A0_SWT#A_vous_de_jouer</link><description><![CDATA[<p>Le <i>widget</i> <a><tt>org.eclipse.swt.widgets.Canvas</tt></a> est un peu spécial en ce sens qu'il est conçu pour permettre à l'utilisateur de <i>dessiner</i> ses propres éléments d'interface.
</p>]]></description></item><item><title>5.1 Tracé de courbe</title><link>http://www.chicoree.fr/w/Introduction_%C3%A0_SWT#Trac.C3.A9_de_courbe</link><description><![CDATA[<p>Le <i>widget</i> <a><tt>org.eclipse.swt.widgets.Canvas</tt></a> est un peu spécial en ce sens qu'il est conçu pour permettre à l'utilisateur de <i>dessiner</i> ses propres éléments d'interface.
</p>]]></description></item><item><title>5.2 Pie chart</title><link>http://www.chicoree.fr/w/Introduction_%C3%A0_SWT#Pie_chart</link><description><![CDATA[<p>Considérez le <a>tableau associatif</a> suivant (représentant la distribution des espèces de vertébrés en 2004 – source <a>wikipedia:Biodiversity</a>):
</p>]]></description></item><item><title>6 Ressources</title><link>http://www.chicoree.fr/w/Introduction_%C3%A0_SWT#Ressources</link><description/></item></channel></rss>
