Capsules IHM

Ces videos sont là pour vous aider à démarrer dans la programmation d’une interface homme machine en Java. Dans chaque video, j’aborde un élément de l’IHM: fenêtre principale, contenu de la fenêtre, barre de menu, menu, bouton, action du bouton et des menus… J’ai choisi Swing comme bibliothèque Java pour plusieurs raisons. Il y a une bibliothèque JavaFX plus récente et que je connais moins. JavaFX est beaucoup plus compliquée, ce qui n’est pas bon pour une découverte de l’IHM. Dans le dernier JDK, JavaFX n’est plus incluse, donc il semble que JavaFX ne soit plus promu par Oracle. Et en fait, la syntaxe diffère mais le principe est le même: mêmes objets, même façon d’interagir. Ce que vous allez apprendre avec Swing sera donc valable aussi pour comprendre les IHMs en JavaFX.

Les screencasts sont

IHM1

Premiere chose pour un programme graphique: il n’y a plus de console texte et il y a au moins une fenêtre graphique. Commençons par créer un programme qui ouvre une fenêtre.

IHM2

Reprenons le code précédent, et ajoutons lui une barre de menu.

IHM3

Reprenons le code précédent

Par défaut, quand j’ajoute des composants, ils sont mis en ligne. Pour les positionner autrement, il faut que j’utilise un Layout. Par défaut, le layout est un FlowLayout qui met tout en ligne, tant qu’il y a de la place.

Les layouts classiques sont en plus de FlowLayout:

Je peux mettre un Layout sur chaque JPanel, et je peux mettre un JPanel dans un JPanel, et donc je m’en sors presque toujours avec des BorderLayout et des GridLayout. Utilisons là un BorderLayout.

Est-ce que la mise en page est celle que vous attendiez ? Changez dynamiquement la taille de la fenetre pour voir comment la mise en page s’adapte.

IHM4

Reprenons le code précédent et ajoutons des actions sur les boutons et éléments de menu.

IHM5

Reprenons le code précédent et ajoutons un JPanel spécial, qui s’affiche comme je veux.

IHM6

Reprenons le code précédent et ajoutons une action souris sur le JCPanel. Pour cela, ajoutons un MouseListener.

IHM7

Reprenons le code précédent et ajoutons des dialogues.

AUTRES

Si vous avez une idée d’un élément fondamental des IHMs qui n’est pas décrit ici, merci de venir me voir en 5D30 ou de m’envoyer un email avec une description de la chose et si c’est pertinent, je rajouterai une video.