Vous êtes ici :
Accueil Cours Programmations La base des interfaces graphiques en langage Java Le développement d'interfaces graphiques avec swing

La base des interfaces graphiques en langage Java : Le développement d'interfaces graphiques avec swing

La bibliothèque swing fait partie de la bibliothèque Java Foundation Classes (JFC). C'est une API( Application Programming Interface) dont le but est similaire à celui de la bibliothèque AWT (Abstract Windowing ToolKit ) mais dont les modes de fonctionnement et d'utilisation sont complètement différents. Swing a été intégré au JDK (Java Develppement Kit ) depuis sa version 1.2. Cette bibliothèque existe séparément. pour le JDK 1.1.
La bibliothèque JFC contient :

  • l'API Swing : de nouvelles classes et interfaces pour construire des interfaces graphiques;
  • Accessibility API;
  • 2D API: support du graphisme en 2D;
  • API pour l'impression et le cliquer/glisser;

La présentation de Swing


Swing propose de nombreux composants dont certains possèdent des fonctions étendues, une utilisation des mécanismes de gestion d'événements performants (ceux introduits par le JDK 1.1) et une apparence modifiable à la volée (une interface graphique qui emploie le style du système d'exploitation Windows ou Motif ou un nouveau style spécifique à Java nommé Metal).

Tous les éléments de Swing font partie d'un package qui a changé plusieurs fois de nom : le nom du package dépend de
la version du J.D.K. utilisée :

  • com.sun.java.swing : jusqu'à la version 1.1 beta 2 de Swing, de la version 1.1 des JFC et de la version 1.2 beta 4 du J.D.K.
  • java.awt.swing : utilisé par le J.D.K. 1.2 beta 2 et 3
  • javax.swing : à partir des versions de Swing 1.1 beta 3 et J.D.K. 1.2 RC1

Dans le reste du cours on utilise javax.swing.

Les composants Swing forment un nouvelle hiérarchie parallèle à celle de l'AWT. L'ancêtre de cette hiérarchie est le composant JComponent. Presque tous ses composants sont écrits en pur Java : ils ne possèdent aucune partie native sauf ceux qui assurent l'interface avec le système d'exploitation : JApplet, JDialog, JFrame, et JWindow. Cela permet aux composants de toujours avoir la même apparence quelque soit le système sur lequel l'application s'exécute.
Tous les composants Swing possèdent les caractéristiques suivantes :

  • ce sont des beans
  • ce sont des composants légers (pas de partie native) hormis quelques exceptions.
  • leurs bords peuvent être changés

La procédure à suivre pour utiliser un composant Swing est identique à celle des composants de la bibliothèque AWT :
créer le composant en appelant son constructeur, appeler les méthodes du composant si nécessaire pour le personnaliser et l'ajouter dans un conteneur.
Swing utilise la même infrastructure de classes qu'AWT, ce qui permet de mélanger des composants Swing et AWT dans la même interface. Il est toutefois recommandé d'éviter de les utiliser simultanément car certains peuvent ne pas être restitués correctement.
Les composants Swing utilisent des modèles pour contenir leurs états ou leurs données. Ces modèles sont des classes particulières qui possèdent toutes un comportement par défaut.


Les packages Swing


Voici une liste non exhausive des classes et interfaces contenant le swing:

javax.swing : package principal : il contient les interfaces, les principaux composants, les modèles par défaut.
javax.swing.border  : Classes représentant les bordures
javax.swing.colorchooser  : Classes définissant un composant pour la sélection de couleurs
javax.swing.event : Classes et interfaces pour les événements spécifiques à Swing. Les autres événements
sont ceux d'AWT (java.awt.event)
javax.swing.filechooser : Classes définissant un composant pour la sélection de fichiers
javax.swing.plaf : Classes et interfaces génériques pour gérer l'apparence
javax.swing.plaf.basic : Classes et interfaces de base pour gérer l'apparence
javax.swing.plaf.metal : Classes et interfaces pour définir l'apparence Metal qui est l'apparence par défaut
javax.swing.table : Classes définissant un composant pour la présentation de données sous forme de tableau
javax.swing.text : Classes et interfaces de bases pour les composants manipulant du texte
javax.swing.text.html : Classes permettant le support du format HTML
javax.swing.text.html.parser : Classes permettant d'analyser des données au format HTML.
javax.swing.text.rtf : Classes permettant le support du format RTF.
javax.swing.tree : Classes définissant un composant pour la présentation de données sous forme d'arbre
javax.swing.undo : Classes permettant d'implémenter les fonctions annuler/refaire.

 




Vous êtes ici :
Accueil Cours Programmations La base des interfaces graphiques en langage Java Le développement d'interfaces graphiques avec swing