I. Qu'est ce qu'un IHM ?

I-A. Les bases

Définition d'une IHM :

Le terme IHM est l'abréviation de « Interface-Homme-Machine ». Une IHM est avant tout l'outil permettant à l'utilisateur d'interférer avec un système complexe que nous pouvons assimiler à une grosse boite noir.

Exemple de la vie courante :

Prenons l'autoradio de votre voiture. Une de ces nombreuses fonctions est de diffuser de la musique mais pas n'importe laquelle; L'utilisateur et c'est bien connu est très exigent. Pour répondre à cette contrainte, nous disposons donc de bouton, lecteur de CD, affichage, etc. Tous ces éléments réunis sur la face avant de notre appareil constituent l'IHM de votre autoradio.

Prenons le cas d'une personne lambda souhaitant acheter un autoradio ; par exemple vous.

Que regardez-vous en premier sur le produit (en dehors du prix) ? Et bien tout simplement qu'il soit agréable à l'œil, facile à manipuler, simple et pas plein de bouton dans tous les sens.

Et bien pour un logiciel c'est exactement pareil. Ce qui fait qu'un utilisateur vas être tenté d'utiliser votre application c'est tout d'abord l'aspect visuel attendu, la simplicité d'utilisation, la convivialité et enfin, mais pas avant, le coté fonctionnel.

Un IHM convivial, ergonomique et simple est la première clé de réussite de vente lors d'une présentation commerciale.

A l'inverse un IHM trop gadget est rédhibitoire.

I-B. Le contexte java

Java a un avantage important face à ces concurrent : la portabilité de ces interfaces mais également de l'ensemble de son code. En effet, une interface développée sous Windows aura le même aspect visuel sous Linux que sous Mac.

Il existe sous Java, un grand nombre de bibliothèque de classe objet pour réaliser des IHM. Nous ne parlerons ici que des 2 principales livré d'office dans le kit de développement Java : AWT et SWING.

II. La conception sous Java

II-A. Les objets SWING

II-B. Les objets AWT

III. Par le concret

III-A. 1ère application

III-A-1. Conception d'une Frame

III-A-2. La fonction Main

III-A-3. Les évènements

III-B. Les composants objets

III-C. Test d'une Frame

III-D. Ergonomie de l'interface

IV. Contraintes des applications multi-tiers