Skip to content

Latest commit

 

History

History
121 lines (89 loc) · 6.53 KB

README.md

File metadata and controls

121 lines (89 loc) · 6.53 KB

🔝 Retour au Sommaire

🖥️ 11. Applications de bureau

Partie 5 — Applications : desktop, web et services
Prérequis recommandés : chapitre 3 (POO), chapitre 4 (Java moderne & fonctionnel),
chapitre 8 (concurrence) et chapitre 6 (build & dépendances).
Outils Eclipse mobilisés : e(fx)clipse, Scene Builder, WindowBuilder, configurations
Run/Debug — voir Annexe I. 🔧


Pourquoi un chapitre sur le desktop en 2026 ?

Soyons honnêtes : en 2026, la plupart des applications grand public sont web ou mobiles.
Le bureau n'est plus le terrain par défaut. Mais il n'a pas disparu pour autant — il occupe un
créneau précis et durable, là où une interface riche, réactive et autonome reste le bon choix :

  • Outils métier internes (gestion, saisie, supervision) où l'on privilégie la productivité à l'esthétique d'un site vitrine ;
  • Logiciels scientifiques, techniques et d'ingénierie : visualisation, instrumentation, calcul intensif, interfaces denses ;
  • Outils pour développeurs et professionnels (Eclipse lui-même en est un exemple) ;
  • Applications devant fonctionner hors-ligne, manipuler intensivement le système de fichiers, ou s'intégrer finement au système d'exploitation.

Java est particulièrement à l'aise sur ce terrain : portabilité (« écrire une fois, exécuter
partout »), maturité, et un écosystème éprouvé. Une même base de code livre une application
native sur Windows, Linux et macOS.


Le paysage Java desktop : deux piliers

Java propose deux boîtes à outils d'interface graphique, toutes deux traitées dans ce chapitre.
Comprendre leur positionnement respectif est la première décision d'architecture à prendre.

JavaFX — le présent du desktop Java ⭐

JavaFX (projet OpenJFX) est la boîte à outils moderne, recommandée pour tout nouveau projet. Elle apporte une approche déclarative (FXML), un style par CSS, la liaison de
données
(properties/bindings), l'animation et un riche ensemble de contrôles.

⚠️ Point pratique essentiel : depuis Java 11, JavaFX n'est plus livré avec le JDK. Elle se
distribue séparément et s'ajoute comme dépendance Maven/Gradle (ou via le SDK Gluon).
C'est une source classique de confusion : un import javafx.* qui « ne se résout pas » vient
presque toujours d'une dépendance manquante. On verra comment la configurer proprement dans
Eclipse en 11.2.

Swing — l'existant à maintenir 🏛️

Swing est la boîte à outils historique. Contrairement à JavaFX, elle fait toujours partie du JDK (module java.desktop) — rien à installer. Elle est en mode maintenance (pas de
nouvelles fonctionnalités), mais reste stable et supportée. Surtout, un volume considérable
d'applications d'entreprise
repose encore dessus : savoir lire, maintenir et faire évoluer du
code Swing est une compétence très demandée, traitée en 11.3.

💡 À situer aussi : AWT est la couche fondatrice sous-jacente à Swing (rarement utilisée
directement aujourd'hui), et SWT est la boîte à outils propre à l'écosystème Eclipse (celle
qui fait fonctionner l'IDE lui-même). D'autres pistes — Compose Multiplatform, interfaces
web embarquées — relèvent de la mise en perspective : voir le chapitre 18.


Eclipse et le développement desktop 🔧

Conformément à l'esprit de cette formation, on exploite réellement l'IDE :

  • JavaFX : le plugin e(fx)clipse (assistant de projet, coloration FXML) et l'éditeur visuel Scene Builder pour dessiner les interfaces FXML — détaillés en 11.2.
  • Swing : le concepteur visuel WindowBuilder, qui génère et synchronise le code des fenêtres — détaillé en 11.3.
  • Au quotidien : configurations Run/Debug, et le débogueur d'Eclipse pour suivre ce qui se passe sur le thread d'interface (en lien direct avec le chapitre 8).

Ce que vous allez apprendre

À l'issue de ce chapitre, vous saurez :

  • Choisir entre JavaFX et Swing selon le contexte (projet neuf vs maintenance) ;
  • Construire une interface moderne avec JavaFX : scènes, nodes, layouts, FXML, liaison de données, CSS et contrôles ;
  • Lire et maintenir une application Swing existante ;
  • Gérer correctement la concurrence d'interface — la règle d'or de toute UI : ne jamais bloquer le thread graphique ;
  • Internationaliser une application (i18n/l10n) avec les ResourceBundle ;
  • Situer l'étape d'empaquetage d'une application de bureau (installeurs natifs, traités au chapitre 15).

🧭 Plan du chapitre

Section Sujet Repère
11.1 Panorama : JavaFX vs Swing — lequel choisir Grille de décision
11.2 JavaFX — l'UI desktop moderne (FXML, Scene Builder, bindings, CSS) ⭐ Cœur du chapitre
11.3 Swing — maintenir l'existant (composants, layout managers, WindowBuilder) 🏛️ Legacy
11.4 Concurrence UI : thread d'application, tâches en arrière-plan ⚠️ Règle d'or
11.5 Internationalisation (i18n/l10n, ResourceBundle)
11.6 Empaquetage d'une application desktop → renvoi au chapitre 15 🔧

À retenir avant d'attaquer

  • Nouveau projet → JavaFX. Boîte à outils moderne, mais dépendance externe à déclarer (elle n'est plus dans le JDK).
  • Maintenance / existant → Swing. Toujours inclus dans le JDK, stable, encore très présent en entreprise.
  • La règle d'or de toute interface : on ne bloque jamais le thread graphique — les traitements longs partent en arrière-plan (11.4).
  • L'empaquetage en installeur natif (via jpackage) n'est pas traité ici mais au chapitre 15 : un seul endroit pour tout le déploiement.

Prêt ? La première étape est de trancher entre les deux piliers en toute connaissance de
cause : direction le panorama comparatif en 11.1.

⏭ Panorama : JavaFX vs Swing — lequel choisir