US

Implémenter des listeners

On va maintenant s'intéresser à deux nouvelles manières d'implémenter les listeners. À la section précédente, on a implémenté les listeners sous forme d'une classe externe, indépendante de l'interface graphique, à qui on passait en paramètre tous les éléments de l'interface graphique avec lesquels le handler devait pouvoir interagir.

Étendre Swing

Jusqu'à présent, lorsque nous souhaitions construire une interface graphique, on créait une nouvelle fenêtre en utilisant la classe JFrame, et ensuite, on lui ajoutait des composants afin de créer l'interface graphique désirée. Ce n'est pas la meilleure approche en programmation orientée objets.

Une meilleure approche à utiliser est d'écrire une nouvelle classe qui représente l'interface graphique que vous souhaitez. Cette nouvelle classe doit bien sur étendre la classe JFrame étant donné qu'on a la relation MaFenêtre is-a JFrame (si MaFenetre est la classe qui représente votre interface graphique).

La classe DegConverterFrame
fig j10.22 La classe DegConverterFrame

Allons-y maintenant pour créer une nouvelle classe qui représentera l'interface graphique du programme pour convertir des degrés Celsius en degrés Fahrenheit. La figure j10.22 montre la relation entre la classe DegConverterFrame et Swing.

Convertir des degrés en fahrenheit
fig j10.23 Convertir des degrés en fahrenheit

La figure j10.23 montre à nouveau l'interface que l'on souhaite construire. Afin de rendre les choses claires et ne pas s'embrouiller dans l'imbrication des composants, l'arbre qui lie les composants est présenté en figure j10.24.

Liens entre les composants de l'interface graphique DegConverterFrame
fig j10.24 Liens entre les composants de l'interface graphique DegConverterFrame

Comme d'habitude, on va construire l'interface graphique en partant du bas de l'arbre, remontant dans celui-ci en imbriquant les composants ensemble. Sauf que cette fois-ci, on est dans une classe qui étend JFrame et pas dans une méthode main en utilisant un objet de type JFrame.