US

Introduction

Les programmes que l'on a pu rencontrer jusqu'à présent étaient tous en mode console et se contentaient de faire une certaine tâche, tout en faisant intervenir l'utilisateur un minimum. On a vu au chapitre 4 qu'avec Java 5 et la classe Scanner, il est possible d'interagir avec l'utilisateur.

Une autre manière, plus conviviale, d'interagir avec l'utilisateur est d'utiliser une interface graphique. Vous connaissez sans doute les interfaces graphiques que vous utilisez tous les jours, pensez à votre logiciel de traitement de texte, à votre environnement de développement Java, à votre lecteur multimédia, ...

Une interface graphique
fig j10.1 Une interface graphique

Différentes approches

Différentes approches peuvent être utilisées pour programmer une interface graphique en Java. On peut tout d'abord utiliser AWT (Abstract Windowing Toolkit) qui permet de construire ce que l'on appelle des interfaces lourdes, c'est-à-dire que la machine virtuelle Java va se baser sur les services offerts par le système d'exploitation pour afficher l'interface graphique à l'écran.

Cette première solution a pour grand avantage sa rapidité étant donné que la machine virtuelle Java utilise le système d'exploitation. On a donc tout de suite un inconvénient qui est la limitation des possibilités offertes, en effet, Java étant portable, en utilisant AWT, vous n'aurez que les possibilités qui sont offertes sur tous les systèmes sur lesquels Java est porté.

La seconde approche permet de construire des interfaces légères, qui n'utilisent pas les services offerts par le système d'exploitation. Les possibilités offertes sont beaucoup plus grandes, au prix de performances un peu réduites. Cette approche utilise l'API Swing fournie avec le JDK standard.

Enfin, sachez également qu'une troisième approche plus récente existe, il s'agit de SWT (Standard Widget Toolkit).

Programmation évènementielle

À partir du moment où l'on parle d'interfaces graphiques, il faut aussi parler de programmation évènementielle. Jusqu'à présent, les programmes que nous avons rencontrés étaient plutôt linéaires. En effet le flux de contrôle passait d'une instruction à la suivante, tout en subissant quelques perturbations avec certaines instructions particulières (chapitre 3) et avec les appels de méthode.

Dans le cadre d'interface graphique, il va falloir réagir à des actions de l'utilisateur comme le clic sur un bouton, le redimensionnement de la fenêtre, la sélection d'un élément dans une liste, ... pour effectuer certaines tâches. On parle dès lors de programmation évènementielle étant donné que le programme consiste en un ensemble de fonctions qui sont exécutées suite à des évènements.

Plan du chapitre

  1. L'API Swing
  2. Construire une interface graphique
  3. Composants de base
  4. Gérer les évènements
  5. Implémenter des listeners
  6. Créer ses propres composants
Chapitre 10
  • Espace membre
  • Learning Center
  • Les forums
  • Livre d'or
  • Imprimer
  • Boutique
  • Info
  • Règlement
  • Erreur
  • Newsletter