ABCSITE

INFORMATIQUE

 
 
 

 
 

 Java 

Interfaces graphiques

 


Comparatifs AWT/Swing 
La gestion des évènements 
Stratégies de positionnement 
Présentation de l'AWT 
Présentation de Swing
Page précédente 


Nous allons, dans ce chapitre, nous intéresser à la mise en oeuvre d'interfaces graphiques en Java. Comme nous allons le voir, il vous est possible de créer toutes sortes d'interfaces, et d'y inclure tous types de composants : des boutons, des case à cocher, des zones de saisie de texte, ... Mais vous pourrez aussi y inclure des composants plus complexes : des menus, des arbres déroulant, des boîtes de dialogue pour choisir des fichiers, des couleurs, ... Nous allons, tout au long des chapitres suivants, présenter les principales possibilités qui vous sont offertes.

Mais avant d'aller plus loin il nous faut être capable de faire un choix. En effet, deux API de définition d'interface graphique vous sont proposées : l'Abstract Window Toolkit (l'AWT) et Swing.

L'Abstract Window Toolkit (l'AWT)

L'Abstract Window Toolkit est historiquement la première qui vous fut proposée. Dès le JDK 1.0, vous pouviez déjà l'utiliser. La contrainte de l'AWT, ou l'avantage (c'est à double tranchants), c'est que Java fait appel au système d'exploitation sous-jacent pour afficher les composants graphiques. Pour cette raison, l'affichage de l'interface utilisateur d'un programme peut diverger sensiblement : chaque système d'exploitation dessine à sa manière un bouton. Attention, l'AWT garantie que la fonctionnalité recherchée sera dans tous les cas fournie (mais présentée différemment).

Or Java se veut être 100% indépendant de la plate-forme utilisée ! Pas 99%. Pour cette raison, une nouvelle API fut définie. Mais hormis ce détail d'affichage, l'AWT présente un avantage indéniable : en utilisant les objets graphiques de l'OS, on va bien plus vite !

Swing

SWING fut donc mis en place pour assurer 100% de portabilité (même un pixel doit avoir la même couleur). Le pari est gagné, mais à un coup non forcément négligeable : pour assurer cette portabilité, un bouton (au tout autre composant graphique) est dessiner non plus par l'OS, mais par Java (ce qui en terme de temps d'exécution à un prix).

En fait, SWING est donnée comment étant écrit uniquement qu'en Java. Bien entendu, il y a une petite triche : en effet, Java doit au moins être capable d'interagir avec l'OS pour pouvoir tracer un point (il faut donc autre chose que du 100% Java). Or c'est ce que font les classes de base de l'AWT (telles que Component, Container, ...). En conséquence, tous les composants de SWING dérive d'une classe de l'AWT.

Notez une chose importante : les mécanismes de gestion d'évènements et de positionnent des composants de l'AWT restent utilisable avec SWING. Donc, certaines classes déjà utilisées avec l'AWT sont donc toujours d'actualité. En terme d'importation de package, cela implique qu'un programme SWING doit malgré tout importer certains packages de l'AWT.

Dernières petites choses pouvant intervenir dans le choix d'une des deux API - Swing est bien plus riche que l'AWT (même si un composant n'existe pas en natif sur l'OS, rien n'empêche de complètement le redessiner) - Si vous cherchez à mettre en place des applets, sachez que Swing n'est pas encore supporté par tous les navigateurs (on peut contourner le problème, nous y reviendrons).

Les sujets abordés par ce cours

Pour appréhender au mieux ce vaste sujet qu'est la conception d'interface graphique en Java, je vous propose dans une premier temps d'étudier deux concepts fondamentaux utilisés aussi bien en AWT qu'en Swing : le gestion des évènements en Java et les stratégies de positionnement de composants graphiques.

Ensuite, je vous propose que commencer en douceur en pénétrant le monde fascinent de l' AWT. Une fois que vous vous serez fait les mains sur cette API, je vous propose de rentrer dans les méandres de Swing.

Notez que toutes corrections ou suggestions seront bien entendu les bien venues (même pour l'orthographe, d'ailleurs je m'en excuse par avance).

 
 

ABCSITE © copyright 2002