C.
RECANATI
IHM
Java
Master M1
2005
TP n¡6
Exercice 1:
On va créer une application
qui affiche une fenêtre comportant une barre de menus et en dessous, une
zone de texte (JTextArea) pouvant être scrollée (utilisez un
JScroolPane). La zone de texte ne sera pas éditable mais on
s’en servira (dans le prochain TP) pour afficher des renseignements sur
les événements se produisant dans le menu. La barre de menus
comportera 3 menus. (Partez si vous voulez de l’exemple de Sketcher
vu en cours).
1) Le premier menu s’intitule ‘Fichier’ et présente d’abord 3 items affichant respectivement un simple texte (par ex. Ouvrir), un texte (par ex. Sauver) et une icône, et enfin une icône seule. Vient ensuite un séparateur, puis un dernier item (par ex. Enregistrer). On trouvera des fichiers d’icônes dans le répertoire ~cathy/images : "left.gif","right.gif" et "middle.gif". (Vous n’avez qu’à copier ce répertoire dans votre propre répertoire images). Pour créer un objet Icon (nécessaire au constructeur JMenuItem pour faire des items comportant une icône), on peut utiliser new ImageIcon(String filename) où filename est le nom du fichier relativement au répertoire courant. ImageIcon est une sous-classe de Icon et se trouve dans javax.swing.
2) Le second menu s’intitule ‘Elements’ et présente d’abord 4 items de type boutons radio intitulés Ligne, Rectangle, Cercle et Courbe. Viennent ensuite un séparateur, puis un sous-menu intitulé Couleurs qui présentera 3 cases à cocher intitulées Rouge, Vert et Bleu. Faites en sorte que l’on ne puisse sélectionner qu’un bouton radio à la fois (on les ajoute tous à un même ButtonGroup).
3) Le dernier menu
s’intitule ‘Aide’ et se trouve situé
complètement à droite sur la barre de menu. (utiliser un
composant Glue). Il ne fait rien.
4) Tous les menus de la barre de
menu possèdent une touche mnémonique. On ajoutera
également quelques accélérateurs pour les items
nommés du premier menu. On pourra aussi ajouter des mnémoniques
aux cases à cocher et aux boutons radio du second menu. Veillez à
ce qu’il n’y ait pas de conflits.
Exercice 2:
1) Rajouter une ToolBar avec trois icônes (des JButton). Pour que la ToolBar ne soit pas déplaçable avec la souris, utiliser setFloatable.
2) Mettre des tooltips aux boutons de la ToolBar (cf. setToolTipText).