Introduction à la boîte à outils SWT : The Standard Widget Toolkit

  • Published on
    18-Dec-2014

  • View
    9.531

  • Download
    0

Embed Size (px)

DESCRIPTION

 

Transcript

<ul><li> 1. Dveloppement de clientsriches : Plateforme Eclipse Chapitre 2 : Botes outils (SWT) - Standard Widget Toolkit Mickal BARON - 2007 (Rv. Janvier 2009) mailto:baron.mickael@gmail.com ou mailto:baron@ensma.fr </li> <li> 2. Licence Creative Commons Contrat Paternit Partage des Conditions Initiales lIdentique 2.0 Francekeulkeul.blogspot.com http://creativecommons.org/licenses/by-sa/2.0/fr SWT - M. Baron - Page 2 </li> <li> 3. Organisation du cours sur la bote outils SWT Evolution des botes outils pour Java Conteneurs Composants de type Control Agents de placement Gestion des vnements Dessiner avec Graphical Contextkeulkeul.blogspot.com Les botes de dialogue (Message, Couleur, ) Les indispensables (appel SWT dans des Threads ) Co-habitation entre SWT et Swing SWT - M. Baron - Page 3 </li> <li> 4. Evolution des botes outils Java La bibliothque AWT (Abstract Window Toolkit) BAO historique de Java depuis le JDK 1.0 mais toujours utilisable (souvent utilise directement pour les Applets) Tous les composants sont implments partir du sous-ensemble portable des composants natifs des systmes htes (Heavyweight Component) Laffichage et le comportement de lIHM sont fortement lis au systme hte Fournit un ensemble Application Java dinterface permettant aux Machine composants graphiques AWT virtuelle dtre reprsents lcrankeulkeul.blogspot.com Peer Systme graphique : X11, Windows, etc. Trac graphique SWT - M. Baron - Page 4 </li> <li> 5. Evolution des botes outils Java La bibliothque Swing BAO considre comme standard en Java 2 Platform (depuis le JDK 2) Tous les composants sont implments directement sans faire appel aux composants natifs du systme hte (Lightweight Components) Laffichage et le comportement de lIHM sont indpendants du systme hte et ne dpendent que du programmeur ou de lutilisateur (Look and Feel) Application Java Machine AWTkeulkeul.blogspot.com virtuelle Swing Peer Systme graphique : X11, Windows, etc. Trac graphique SWT - M. Baron - Page 5 </li> <li> 6. Bote outils SWT SWT : Standard Widget Toolkit Bibliothque dveloppe par IBM pour le projet Eclipse www.eclipse.org/articles/Article-SWT-Design-1/SWT-Design-1.html Distribue librement pour le dveloppement de plug-ins ou dapplication stand-alone Fournit des composants de base (bouton, label, ) Fournit des composants plus complexes avec JFacekeulkeul.blogspot.com Fournit un modle pour la gestion des vnements identique celui utilis par AWT et Swing (abonnement) SWT - M. Baron - Page 6 </li> <li> 7. Bote outils SWT SWT fournit des techniques dimplmentation de bas niveau SWT procure des composants graphiques natifs dune manire indpendante de lOS Combinaison de classes Java et JNI spcifiques chaque plateforme JNI utilis pour invoquer le systme dexploitation Application Java Machine SWT virtuellekeulkeul.blogspot.com SWT.dll, SWT.so, Systme graphique : X11, Windows, etc. Trac graphique SWT - M. Baron - Page 7 </li> <li> 8. Comparaison Swing/SWT Performance : mme si SWT sappuie sur des composants natifs il y a des cas particuliers o Swing est plus rapide Affichage de trs grand nombre dinformation : JTable Swing plus rapide quun TextViewer SWT/JFace Composants natifs = meilleure ractivit et rapidit de chargement Portabilit : avec SWT ncessit dutiliser des bibliothques natives alors que pour Swing aucune contraintekeulkeul.blogspot.com Pour SWT installation des bibliothques Pour Swing dj pr-install SWT - M. Baron - Page 8 </li> <li> 9. Comparaison Swing/SWT (suite) Look : SWT ne permet pas de modifier lapparence des composants Pour SWT respect des habitudes de lutilisateur Pour Swing possibilit de sadapter un type dutilisateur (un look cartoon pour les enfants) Reproche Swing son aspect non professionnel ( voir) Dveloppement : SWT ncessite de librer les ressources pas pour Swing Pour SWT de nombreux composants adapt (assistant par exemple)keulkeul.blogspot.com Swing nest pas en reste avec les composants SwingLabs Pour Swing plus de documentations pour laide au dveloppement Pour SWT moins dexemples mais a arrive SWT - M. Baron - Page 9 </li> <li> 10. SWT : les ressources Le site de la fondation Eclipse La page daccueil sur SWT (www.eclipse.org/swt) Un ensemble dexemples (www.eclipse.org/swt/snippets) Des articles de la fondation Eclipse www.eclipse.org/articles/Article-SWT-images/graphics-resources.html www.eclipse.org/articles/Article-SWT-DND/DND-in-SWT.html www.eclipse.org/articles/Article-SWT-Design-1/SWT-Design-1.html et 2 Et pleins dautres encore Des supports de cours et des exempleskeulkeul.blogspot.com www.labo-sun.com/resource-fr-essentiels-903-0-java-gui-swt-creer-des-interfaces- graphiques-performantes.htm www.java2s.com/Code/Java/SWT-JFace-Eclipse/CatalogSWT-JFace-Eclipse.htm SWT - M. Baron - Page 10 </li> <li> 11. Principaux composants graphiques de SWT Fentres Les fentres de base et les botes de dialogue Composants Les principaux composants dinteraction : boutons, menus, Tree, Table, Scale, Les composants JFace apporteront une vision MVC des composants Conteneurs Composants spcifiques (parfois invisibles) qui servent contenir des composants et/ou Conteneurskeulkeul.blogspot.com Les fentres sont des conteneurs Agents de placements Ce sont des objets qui servent placer des composants dans un conteneur SWT - M. Baron - Page 11 </li> <li> 12. Exemple : le compteur file rouge Le compteur Un bouton et un entier sont affichs dans une fentre Lorsque lutilisateur appuie sur le bouton, lentier est incrment dune unit puis affich Fentre Composants graphiques visibles Bouton Une fentre principale Un bouton que lutilisateur peut dclencher Une zone de texte non modifiable par lutilisateurkeulkeul.blogspot.com Label Raction aux actions de lutilisateur Lvnement clic sur le bouton doit incrmenter lentier et lafficher nouveau SWT - M. Baron - Page 12 </li> <li> 13. Le compteur : structure des composants La fentre Classe : Shell Composite Le contenu de la fentre myShell Shell La fentre est un conteneur de type Composite contient Permet dy ajouter les autres composants myShell Le bouton et la zone de texte myButton myLabel Classes : Button et Label Ajouts au conteneur pour pouvoir sy afficherkeulkeul.blogspot.com Le placement des composants nest pas encore dfini Dtail plus tard SWT - M. Baron - Page 13 </li> <li> 14. Le compteur : implmentation tapes de dveloppement public class Compteur { Rcupration du Display public Compteur() { Display display = new Display(); Shell myShell = new Shell(display); myShell.setText("Compteur"); Cration de la fentre Button myButton = new Button(myShell,SWT.NONE); myButton.setText("i-&gt;i+1"); Label myLabel = new Label(myShell, SWT.CENTER); myLabel.setText("i = 0"); Cration des composants myShell.pack(); myShell.open(); en les ajoutant la fentre while(!myShell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } Dimensionnement de la } display.dispose(); Dtail plus tard keulkeul.blogspot.com public static void main (String args[]) {...</li></ul>