Standard Widget Toolkit
Standard Widget Toolkit (SWT) est une bibliothèque graphique libre pour Java, initiée par IBM. SWT n'est pas un standard Java reconnu par le JCP.
Cette bibliothèque offre des composants graphiques (textes, boutons, panneaux…), les utilitaires nécessaires pour développer une interface graphique en Java, et une implémentation native spécifique à chaque système d'exploitation qui sera utilisée à l'exécution du programme.
SWT utilise les composants natifs de boites à outils préexistantes : Win32 (pour Windows), ainsi que GTK et Motif (pour Linux). Ainsi, le look and feel n'est pas imposé, il dépend de la boite à outils sous-jacente. Par exemple avec GTK , une modification du thème de celui-ci agira sur les applications SWT également.
Du travail a été fait pour combiner SWT et Swing : SwingWT permet d'utiliser SWT dans Swing, et SWTSwing permet au contraire d'utiliser Swing dans SWT. La technologie plus moderne JavaFX est aussi interopérable avec SWT[1].
L'environnement de développement libre Eclipse, commandité lui aussi par IBM, repose sur l'architecture SWT.
Avantages
modifier- Implémente en Java des fonctionnalités qui ne sont pas offertes par les boites à outils sous-jacentes, d'où sa supériorité sur AWT qui ne fait que reprendre leurs composants.
- N'implémente en Java que les fonctionnalités qui ne sont pas offertes par les boites à outils sous-jacentes, économise donc les ressources, d'où sa rapidité d'exécution par rapport à Swing.
Inconvénients
modifier- Rareté des documentations par rapport à celles de Swing, la communauté des utilisateurs de SWT étant moins grande.
- Gestion des ressources contraignante (libération des couleurs, fontes…) due à l'utilisation des fonctions natives.
- L'utiliser pour des applets est beaucoup plus difficile, car absent des standards.
Voir aussi
modifier- JFace qui est une bibliothèque graphique qui s'appuie sur SWT pour fournir des éléments de plus haut niveau (vues, assistants, dialogues, préférences, etc).
Liens externes
modifier- (en) Site officiel
- (en) SwingWT : projet de mutualisation de Swing et SWT