Interfaces Graphiques en Java
TD 3

Les actions

Exercice 1 : Les actions

Le but dans cet exercice est d'utiliser des actions génériques (Action et 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 JTextArea qui coupe les lignes trop longues, de préférence sans couper les mots, et bénéficiant d'ascenseurs 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 tel 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.


Rémi Forax 2000 Université de Marne la Vallée