Développement d`interfaces graphiques en Java à l`aide de SWING

http://www.labo-java.com
Développement d’interfaces
graphiques en Java à l’aide de
SWING
Auteur : Medaghri-Alaoui Youssef
Version 1.3 – 26 novembre 2003
Ecole Supérieure d’Informatique de Paris
23. rue Château Landon 75010 – PARIS
www.supinfo.com
Essentiel Java : Les Swing 2 / 62
http://www.labo-java.com
labo-sun@supinfo.com
Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs.
Table des matières
1. INTRODUCTION ................................................................................................................................................ 3
1.1. RAPPEL SUR LES JFC........................................................................................................................................ 3
1.2. AWT ................................................................................................................................................................ 3
1.3. SWING ............................................................................................................................................................ 3
2. PREMIERE APPLICATION SWING............................................................................................................... 3
2.1. TD1 : PREMIERE APPLICATION........................................................................................................................ 3
2.1.1. Code Source : PremiereApp.java ............................................................................................................ 3
2.1.2. Compilation en exécutable JAR............................................................................................................... 3
3. FENÊTRES,PANNEAUX ET BORDURES...................................................................................................... 3
3.1. FENETRES ......................................................................................................................................................... 3
3.1.1. JFrame...................................................................................................................................................... 3
3.1.2. JDialog ..................................................................................................................................................... 3
3.1.3. JWindow................................................................................................................................................... 3
3.2. PANNEAUX ....................................................................................................................................................... 3
3.2.1. JRootPane................................................................................................................................................. 3
3.2.2. JPanel....................................................................................................................................................... 3
3.2.3. JMenuBar................................................................................................................................................. 3
3.2.4. JLayeredPanel.......................................................................................................................................... 3
3.2.5. La gestion des événements....................................................................................................................... 3
3.3. BORDURES........................................................................................................................................................ 3
3.3.1. TD3 PremiereBordure ............................................................................................................................. 3
3.3.2. TD4 BordurePersonalisée........................................................................................................................ 3
4. LIBELLES ET BOUTONS.................................................................................................................................. 3
4.1. JLABEL (LIBELLE) ............................................................................................................................................ 3
4.2. BOUTONS.......................................................................................................................................................... 3
4.2.1. JButton...................................................................................................................................................... 3
4.2.2. JToggleButton .......................................................................................................................................... 3
4.3. TD5 BOUTONS BASCULES ET ACTIONLISTENERS ........................................................................................... 3
5. LAYOUTS ............................................................................................................................................................. 3
5.1. LAYOUTS LES PLUS COURANTS ........................................................................................................................ 3
5.1.1. FlowLayout............................................................................................................................................... 3
5.1.2. GridLayout ............................................................................................................................................... 3
5.1.3. BoxLayout................................................................................................................................................. 3
5.1.4. BorderLayout............................................................................................................................................ 3
5.2. TD6 LAYOUTS LES PLUS COURANTS................................................................................................................ 3
5.2.1. La maquette du formulaire....................................................................................................................... 3
5.2.2. Definition des layouts et architecture de la fenêtre................................................................................. 3
5.2.3. Passage au code....................................................................................................................................... 3
6. COMBO BOX ....................................................................................................................................................... 3
6.1. JCOMBOBOX .................................................................................................................................................... 3
6.1.1. TD7 ComboBox pour choix de films........................................................................................................ 3
6.1.2. TD8 ComboBox personnalisée ................................................................................................................ 3
7. LIST BOX (JLIST)............................................................................................................................................... 3
7.1. PERSONNALISER LA SELECTION ....................................................................................................................... 3
7.1.1. Le mode de sélection................................................................................................................................ 3
7.1.2. Le contenu de le sélection........................................................................................................................ 3
7.1.3. Détecter les changements de sélection .................................................................................................... 3
Essentiel Java : Les Swing 3 / 62
http://www.labo-java.com
labo-sun@supinfo.com
Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs.
7.2. TD9 LISTE DE CHOIX MULTIPLES ..................................................................................................................... 3
7.3. TD10 PERSONNALISATION DE LA JLIST........................................................................................................... 3
8. JTREE.................................................................................................................................................................... 3
8.1.1. Personnalisation d’un arbre.................................................................................................................... 3
8.1.2. Sélection dans un arbre............................................................................................................................ 3
8.1.3. TD11 Un Premier JTree........................................................................................................................... 3
9. JTABLE................................................................................................................................................................. 3
9.1. UTILISATION SIMPLE DUNE JTABLE................................................................................................................ 3
9.1.1. TD12 JTable Simple................................................................................................................................. 3
9.1.2. TD13 Un Renderer Personnalisé............................................................................................................. 3
9.1.3. Renderers par défaut................................................................................................................................ 3
9.1.4. TD14 L’utilisation d’un TableModel....................................................................................................... 3
9.1.5. Les Editors................................................................................................................................................ 3
9.1.6. Fonctionnement des Editors..................................................................................................................... 3
9.1.7. Créer notre Editor.................................................................................................................................... 3
9.1.8. TD15 Les Editors ..................................................................................................................................... 3
10. LES CONTAINERS.................................................................................................................................. 3
10.1. JFRAME (CONTAINER RACINE)........................................................................................................................ 3
10.2. JPANEL ............................................................................................................................................................. 3
10.3. JSCROLLPANE (CONTAINER AVEC DEFILEMENT)............................................................................................. 3
10.4. JTABBEDPANE (PANNEAU A ONGLETS)........................................................................................................... 3
10.5. JSPLITPANE (BARRE DE SEPARATION)............................................................................................................. 3
10.6. TD 16 : TOUT CE QUE LON VIENT DE VOIR ..................................................................................................... 3
11. LES COMPOSANTS TEXTE.................................................................................................................. 3
11.1. JTEXTFIELD...................................................................................................................................................... 3
11.2. JPASSWORDFIELD ............................................................................................................................................ 3
11.3. JTEXTAREA...................................................................................................................................................... 3
11.4. JTEXTPANE ...................................................................................................................................................... 3
11.4.1. Definir des styles...................................................................................................................................... 3
11.4.2. Formater un contenu................................................................................................................................ 3
11.5. TD 17 : LES COMPOSANTS TEXTE ................................................................................................................... 3
12. LES BOITES DE DIALOGUES.............................................................................................................. 3
12.1. JDIALOG........................................................................................................................................................... 3
12.1.1. TD 18 : Les Boîtes de dialogue personnalisées....................................................................................... 3
12.2. JOPTIONPANE................................................................................................................................................... 3
12.2.1. Fonctions showXxxDialog ....................................................................................................................... 3
12.3. JFILECHOOSER ................................................................................................................................................. 3
13. LES APPLICATIONS MDI..................................................................................................................... 3
13.1. JLAYEREDPANE................................................................................................................................................ 3
13.1.1. Positions dans un layer............................................................................................................................ 3
13.1.2. Profondeur (Depth).................................................................................................................................. 3
13.1.3. Ajout dans un Layer ................................................................................................................................. 3
13.1.4. TD18 Afficher un fond.............................................................................................................................. 3
13.2. CREATIONS DINTERFACES MDI...................................................................................................................... 3
13.2.1. JDesktopPane........................................................................................................................................... 3
13.2.2. JInternalFrame......................................................................................................................................... 3
13.2.3. TD19 Première Application Mdi ............................................................................................................. 3
13.2.4. TD20 Application TP Mdi........................................................................................................................ 3
Essentiel Java : Les Swing 4 / 62
http://www.labo-java.com
labo-sun@supinfo.com
Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs.
1. INTRODUCTION
Swing est une librairie Java fournie avec le JDK (Java Developpement Kit) standard.
Historiquement elle n’est pas la première librairie fournie par Sun pour construire des interfaces
graphiques, la librairie AWT est arrivée la première. Elle est toujours utilisée car swing elle même
utilise des éléments d’AWT. On peut considérer que Swing est une évolution d’AWT.
1.1. Rappel sur les JFC
Les JFC (Java Foundation Classes) sont un ensemble de librairies Java permettant la construction
d’applications graphiques pouvant fonctionner à la fois sous Windows, mais aussi sur d’autres
systèmes d’ exploitations de plus en plus populaires tels que Linux ou Mac OSX.
Les JFC sont constitués de cinq parties majeures :
AWT : Bibliothèque permettant de créer des programmes exécutables dans un
environnement graphique (GUI) tel que Windows, Linux ou Mac OS
SWING : Extension de AWT pour la conception d’applications
graphiques ( Sujet de l’étude )
Accessibility : Support pour les personnes handicapées
Java 2D : Fonctions graphiques avançées pour la 2D, la gestion des graphismes et
de l’impression.
Internationalization : Support pour le langage et les conventions culturelles
1.2. AWT
AWT (Abstract Windowing Toolkit) est une librairie fournie pour construire des interfaces
graphiques.
Elle encapsule les ressources système qu’elle utilise par des abstractions, de sorte que le développeur
ne perçoit pas directement ces ressources propres au système.
Ainsi les éléments graphiques ( Champs, boutons …) crées à l’aide d’AWT auront l’apparence que le
système d’exploitation leur donne.
De plus il n’est pas possible avec une telle architecture d’utiliser des éléments graphiques spécifiques
d’un système particulier car ils ne sauraient être dessinés à l’écran par d’autres systèmes.
1.3. SWING
La librairie SWING a été développée en partie pour corriger certains inconvénients tels que celui
évoqué précédemment, et plus généralement pour assurer une portabilité accrue.
Les éléments graphiques développés à l’aide de Swing sont dessinés par la librairie elle même,
l’affichage n’est pas délégué au système. Un élément graphique Swing aura toujours la même
apparence d’une plate-forme à l’autre.
En outre un élément graphique peut être défini par Swing sans même que ce composant ait un
équivalent au niveau du système d’exploitation.
Il faut toutefois se garder de croire que SWING remplace AWT, elle est une couche située au dessus
d’AWT et dont la plupart des composant dérivent.
Essentiel Java : Les Swing 5 / 62
http://www.labo-java.com
labo-sun@supinfo.com
Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs.
2. PREMIERE APPLICATION SWING
Notre premier programme va consister à écrire une phrase dans une fenêtre, en l’occurrence il va s’agir du
traditionnel « Hello World ».
Le code ne présente aucune difficulté, toutefois la procédure de compilation en ligne de commande doit
respecter des règles précises.
Vous pouvez bien évidemment opter pour un Environnement de développement (Forte de Sun par exemple
ou Eclipse d’IBM), mais pour l’instant le duo Notepad, Command devrait suffire.
2.1. TD1 : Première Application
2.1.1. Code Source : PremiereApp.java
import javax.swing.*;
public class PremiereApp {
private static String Texte= "Hello World !";
public static void main(String args[]) { // Pourquoi static ? Car elle doit être exécutée
// à un moment il n’existe aucun objet
JFrame fenetre = new JFrame("Première App");
fenetre.setSize(200,100);
JLabel Libelle = new JLabel(Texte,0);
fenetre.getContentPane().add(Libelle);
fenetre.show();
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
2.1.2. Compilation en exécutable JAR
Pour pouvoir exécuter un fichier JAR, il faut soit avoir au préalable installé un Java Runtime
Environment (JRE), soit le lancer depuis la ligne de commande à l’aide de l’instruction java –jar
app.jar
Compilation :
Javac PremiereApp.java (Javac –verbose permet de voir ce que fait le compilateur)
Si la compilation s’est bien passé un fichier PremiereApp.class est généré.
Reste à créer un fichier Manifest.mf (ou nommez le comme vous voulez ) contenant la ligne
suivante : Main-Class : PremiereApp (attention n’oubliez pas un retour à la ligne)
Exécutable JAR :
Jar –cmf Manifest.mf PremiereApp.jar PremiereApp.class pour obtenir l’archive jar exécutable.
1 / 62 100%

Développement d`interfaces graphiques en Java à l`aide de SWING

La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !