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).
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.
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.
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
.