Interfaces Graphiques avec Java

TD 4


Exercice 1 - Les actions

Le but dans cet exercice est d'utiliser des actions génériques (Action ou AbstractAction) définissant du code et utilisables (sollicitables) dans différentes cas (menus, boutons, touches clavier, etc.).

Plus particulièrement, et dans un premier temps, on veut construire un petit éditeur de textes permettant de:

Le texte en lui-même sera représenté par un TextArea qui coupe les lignes trop longues, de préférence sans couper les mots, et bénéficiant d'assenseurs lorsque cela est rendu nécessaire par la longueur du texte.

Pour le reste, créer une JFrame fournissant des accès à ces différentes fonctionnalités (actions), sous les forme simultanées suivantes.

  1. Une entrée dans un menu Fichier accessible à partir d'une barre de menu.
  2. Une combinaison de touches Alt + ... permettant d'atteindre le menu correspondant.
  3. Une combinaison de touches Ctrl + ... permettant d'exécuter l'action sans avoir à ouvrir le menu.
  4. Un bouton dans une barre d'outils.
  5. Un menu contextuel qui s'ouvre lorsqu'on clique sur le bouton droit de la souris dans la zone de texte.

On pourra par exemple utiliser les icônes suivants:


Exercice 2 - Actions à états

Dans le même esprit, ajouter à la barre de menus un menu Edition avec des entrées offrant des fonctionnalités permettant de mettre en gras ou en italique l'ensemble du texte (ce n'est pas particulièrement réaliste, mais de nombreuses fonctionnalités de javax.swing.text fournissent déjà des services de ce genre). Ajouter à la barre d'outils des boutons correspondant. Vous pourrez par exemple utiliser les icônes , , et .


Exercice 3 - Activation/désactivation d'actions

On désire maintenant avoir un comportemnt particulier de notre éditeur de texte, en particulier assurer la cohérence sur cetrains points tes que:

  1. inhiber l'édition (mise en gras/italique ou autre modification) du texte tant que l'utilisateur n'a pas explicitement positionné un bouton Modifier.
  2. inhiber les fonctionnalités d'enregistrement tant qu'un texte n'a pas été sélectionné comme éditable.
  3. Etc.


Etienne.Duris[at]univ-mlv.fr - © Université de Marne-La-Vallée - Février 2000 - http://www-igm.univ-mlv.fr/~duris