Cours Java – Swing & Panorama des Frameworks Java
Durée totale : 3 heures
Public: Étudiants en développement Java ayant déjà vu Singleton, MVC, DAO
Partie 1 – Rappel Java Swing (1h15)
1. Introduction à Swing
Swing est une bibliothèque Java permettant de créer des interfaces graphiques (GUI). Elle
fait partie de Java Foundation Classes (JFC).
Concepts clés :
- Composants (JFrame, JButton, JLabel, JTextField…)
- Conteneurs
- Layout Managers
- Event Handling
2. Composants principaux
JFrame : fenêtre principale
JPanel : conteneur
JButton : bouton
JLabel : texte
JTextField : champ texte
3. Exemple simple
Exemple : fenêtre avec bouton qui affiche un message.
Créer JFrame → ajouter JPanel → ajouter JButton → gérer événement.
4. Layout Managers
- FlowLayout
- BorderLayout
- GridLayout
5. Gestion des événements
Utilisation des Listeners (ActionListener) pour gérer les clics.
Mini TP (30 min)
Créer une application Swing : formulaire de connexion avec login/password et bouton
Valider.
1. Les conteneurs (Containers)
En Java Swing, un conteneur est un composant capable de contenir d’autres composants
(boutons, champs de texte, labels, etc.). Il sert à organiser l’interface graphique.
Principaux types de conteneurs :
- JFrame : fenêtre principale d’une application Swing.
- JPanel : conteneur léger utilisé pour regrouper des composants.
- JDialog : fenêtre de dialogue.
- JScrollPane : conteneur avec barres de défilement.
Exemple :
Un JFrame peut contenir plusieurs JPanel, et chaque JPanel peut contenir des boutons,
labels, etc.
2. Les Layout Managers
Les layout managers (gestionnaires de placement) contrôlent la façon dont les composants
sont disposés à l’intérieur d’un conteneur.
Principaux layout managers :
- FlowLayout : place les composants de gauche à droite.
- BorderLayout : divise le conteneur en 5 zones (NORTH, SOUTH, EAST, WEST, CENTER).
- GridLayout : place les composants dans une grille (lignes/colonnes).
- BoxLayout : aligne les composants horizontalement ou verticalement.
Chaque conteneur possède un layout manager par défaut, mais on peut le changer.
3. Event Handling (Gestion des événements)
La gestion des événements permet de réagir aux actions de l’utilisateur (clic sur un bouton,
saisie clavier, mouvement de la souris, etc.).
Principe :
- Un événement se produit (ex : clic).
- Un listener (écouteur) intercepte cet événement.
- Une méthode est exécutée en réponse.
Exemples de listeners :
- ActionListener : clic sur un bouton.
- MouseListener : actions de la souris.
- KeyListener : actions du clavier.
C’est un concept clé de la programmation événementielle en Java Swing.
Partie 2 – Panorama des Frameworks Java (1h45)
1. Java SE, EE, ME
Java SE : applications desktop, base du langage.
Java EE (Jakarta EE) : applications web entreprise.
Java ME : applications embarquées/mobile.
2. JPA & Hibernate
JPA est une spécification pour la persistance des données.
Hibernate est une implémentation JPA.
Avantages : ORM, moins de SQL, productivité.
3. Spring Framework
Framework léger basé sur IoC/DI.
Permet de créer des applications modulaires.
4. Spring Boot
Extension de Spring pour démarrage rapide.
Configuration automatique, microservices, APIs REST.
5. Struts
Framework MVC historique pour applications web Java.
6. Jakarta EE (ex JEE)
Plateforme complète pour applications entreprise.
Inclut Servlets, JSP, CDI, EJB.
Activité discussion (30 min)
Comparer Swing vs Web (Spring Boot).
Quand utiliser Desktop vs Web ?
1. Frameworks de Développement Web & Enterprise
Spring Framework : Le leader incontesté. Il est modulaire et inclut Spring Boot pour créer
des applications prêtes pour la production avec une configuration minimale.
Jakarta EE (ex-Java EE) : Le standard officiel pour les applications d'entreprise à grande
échelle.
Quarkus : Conçu pour Kubernetes, il est extrêmement rapide et optimisé pour le cloud et le
serverless.
Micronaut : Un framework moderne et léger, idéal pour les microservices grâce à son faible
encombrement mémoire.
Play Framework : Basé sur une architecture réactive, il est utilisé pour des applications
hautement scalables.
Frameworks de Persistance (ORM)
Hibernate : L'outil de mapping objet-relationnel (ORM) le plus populaire, facilitant les
interactions avec les bases de données.
Spring Data JPA : Une extension de Spring qui simplifie drastiquement l'implémentation des
couches d'accès aux données.
Frameworks d'Interface Utilisateur (UI/Frontend)
Vaadin : Permet de construire des interfaces web modernes entièrement en Java, sans avoir
à écrire de JavaScript.
JSF (JavaServer Faces) : Framework standard pour construire des interfaces utilisateur
basées sur des composants.
GWT (Google Web Toolkit) : Compile le code Java en JavaScript pour le navigateur.
Frameworks Mobiles & Autres
Grails : Basé sur Groovy, il offre une approche "convention over configuration" similaire à
Ruby on Rails.
Apache Struts : Un framework MVC classique encore utilisé dans de nombreux systèmes
hérités
Conclusion
Swing utile pour comprendre GUI.
Les frameworks modernes se concentrent sur le Web et microservices.
Exercice:
Créer une fenêtre Swing qui affiche une liste d’étudiants dans une JTable, avec :
un JLabel pour le titre,
des JButton pour interagir (ajouter / compter),
une gestion simple des événements.
Énoncé:
1. Créer une fenêtre JFrame intitulée "Gestion des étudiants"
2. Ajouter un JLabel en haut :
👉 "Liste des étudiants"
3. Ajouter une JTable avec 3 colonnes :
a. ID
b. Nom
c. Note
4. Ajouter deux boutons :
a. Ajouter étudiant
b. Nombre d’étudiants
5. Quand on clique sur :
a. Ajouter étudiant → ajoute une ligne dans la JTable
b. Nombre d’étudiants → affiche le nombre dans un JOptionPane