Introduction à la réalisation d'interfaces graphiques en Java

Ceci est une courte introduction pour la réalisation d'interfaces graphiques en Java. On considère qu'on utilise la version 1.4.2 du langage. Ce document doit servir de mémo et de guide d'apprentissage, mais est loin d'être exhaustif. Pour plus d'informations, consulter l'API (Application Programming Interface) ou les ressources en ligne.

1. Packages utilisés

Depuis Java 2, il existe un ensemble de packages nommés Swing (javax.swing), qui offrent de nombreuses fonctionnalités pour réaliser des interfaces graphiques dont l'apparence ne dépend pas de la plateforme. L'API Swing utilise les fonctionnalités de l'API AWT (java.awt), qui pour sa part permet de réaliser des interfaces dont l'apparence dépendra fortement du système utilisé.

Pour utiliser Swing on doit en général réaliser les imports suivants:

  import java.awt.*;
  import javax.swing.*;

2. Principales classes utilisées

Une interface graphique est réalisée à l'aide de :

Avec les trois catégories d'éléments données ci-dessus, on peut réaliser une interface graphique... qui restera statique. Pour que l'utilisateur de l'application puisse la manipuler et interagir avec les composants graphiques, il faut ajouter la gestion des évènements.

Un évènement (Event) est un objet (comme toujours !) qui est créé quand a lieu une action telle que "presser sur une touche du clavier", "cliquer sur le bouton gauche de la souris", etc. Vous-mêmes, en tant que programmeurs, n'avez pas besoin de créer de nouveaux évènements : ils sont créés automatiquement pendant l'exécution quand une action est produite, et vous vous contentez de récupérer un évènement et de définir les actions qui doivent s'ensuivre.

Pour cela, on attache à certains éléments graphiques des objets appelés écouteurs d'évènements (EventListener). Ces objets implantent des interfaces définies dans l'API, qui définissent quelles méthodes doivent être exécutées en fonction des évènements récupérés. Le programmeur complète alors le code des méthodes de son EventListener. Ce code sera exécuté à chaque fois que l'évènement correspondant est déclenché sur un objet auquel l'EventListener est attaché.

Notez qu'avec JBuilder, tout ceci est très simplifié pour l'utilisateur: à chaque fois que vous sélectionnez un évènement sur un objet graphique, l'écouteur d'évènement correspondant est ajouté, et le pointeur de la souris se place dans le corps de la méthode que vous n'avez plus qu'à compléter.

3. Un exemple simple

A venir...

4. Quelques classes utiles

On donne ici une liste de quelques classes avec un court descriptif. Pour aller plus loin, il existe un guide visuel des principaux composants de SWING.