C. Recanati
Master Info 1ère année
InHM, 2009

TP n° 6

Exercice 1 (suite du programme Sketcher vu en cours pp. 304-305 et en TP)
On va poursuivre l’application pour qu’elle 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 par l’utilisateur. (On s’en servira dans le TP de la semaine prochaine pour afficher des informations sur les événements se produisant dans le menu). La barre de menus comportera 3 JMenu : Fichier, Elements, et Aide.

1) Le menu Fichier présente d’abord 3 items affichant respectivement un simple texte (par ex. Ouvrir), un texte (par ex. Sauver) plus une icône, et enfin, une icône seule. Vient ensuite un séparateur, puis un dernier item (par ex. Enregistrer). 
Indications : on trouvera des fichiers d’icônes dans le répertoire http://lipn.fr/~recanati/docs/ProgJava/Prog/images (left.gif, right.gif et middle.gif). (Vous pouvez recopier ces fichiers dans un répertoire chez vous). Pour créer un objet Icon (nécessaire au constructeur de JMenuItem pour faire des items comportant une icône), vous pouvez utiliser le constructeur new ImageIcon(String filename) où filename est le nom du fichier relativement au répertoire courant. ImageIcon est une sous-classe de Icon qui se trouve dans javax.swing.

2) Le menu Elements présente d’abord 4 items de type boutons radio intitulés Ligne, Rectangle, Cercle et Courbe. Vient ensuite un séparateur, puis un sous-menu Couleurs qui présente 3 cases à cocher nommées Rouge, Vert et Bleu. Faites en sorte que l’on ne puisse sélectionner qu’un seul bouton radio, ou qu’une seule couleur à la fois (on les ajoutera à un même ButtonGroup).

3) Le menu Aide ne fait rien, mais il doit se trouver complètement à droite de la barre de menu (ajouter un composant Glue pour le séparer des autres JMenu).

4) Mettre aux 3 menus de la barre de menu des touches mnémoniques. On ajoutera également quelques accélérateurs aux items du premier menu. Veillez à ce qu’il n’y ait pas de conflits sur les lettres utilisées.

Exercice 2
1) Ajouter une ToolBar comportant trois icônes (JButton). Pour que cette barre d’outils ne soit pas déplaçable avec la souris, utiliser setFloatable. 
2) Mettre des tooltips aux boutons de la ToolBar (avec setToolTipText) pour indiquer la commande qui sera déclenchée.