Travaux Pratiques Interfaces Graphiques Master 1
TP 1 - premiers composants AWT et Swing
Auteurs: Fabien Baille, Stéphane Devismes, Vincent Padovani, Jean-Baptiste Yunès


But du TP

L’objectif est de mettre en évidence les différences d’apparence entre composants graphiques Swing et AWT, de visualiser la profondeur de hiérarchie de composants et les stratégies de différents gestionnaires de disposition. Ce TP est prévu pour durer 2 séances, la première allant jusqu’à la partie sur l’assemblage de composants incluse.

Vous pouvez vous aider des exemples d’utilisation de composants swing disponibles sur le site de sun, ainsi que de la documentation des classes java. Pour ce TP, quelques liens sont donnés vers la documentation de classes spécifiques.


Programme à réaliser

Le programme à écrire se nomme PremiersComposants.java. Il affiche un panneau à onglets, chaque onglet portant le nom d’une classe de composant AWT ou Swing, et contenant un objet de cette classe. On utilisera, par exemple, un java.awt.Button, un javax.swing.JButton, une java.awt.Checkbox et une javax.swing.JCheckbox (donc 4 onglets en tout).

Un menu ’Fichier" contiendra une option ’Quitter’ qui devra permettre de terminer l’application correctement, et cette option devra posséder le raccourci clavier CTRL+Q. Au final vous devriez obtenir une fenêtre d’affichage ressemblant à ceci :

capture d'ecran de l'application PremiersComposants


Création de la fenêtre principale

Créer une fenêtre principale (JFrame) affichant un panneau à onglets (JTabbedPane). L’icône de fermeture permettra de sortir de l’application en invoquant System.exit.

Affichage de composants

Créer les différents composants et les ajouter dans le panneau à onglets.

Utilisation de menus

Créer une barre de menu (JMenuBar) contenant un menu nommé ’Fichier" (JMenu), lui-même contenant une option ’Quitter’ (JMenuItem). Le choix de cette option de menu permettra de quitter l’application.

Utilisation de raccourcis

Adjoindre à l’option ’Quitter’ un raccourci clavier CTRL-Q, (voir JMenuItem et sa méthode setAccelerator()).

Assemblage de composants

  1. Définir une «usine1 statique de panneaux colorés à disposition BoxLayout», c’est-à-dire une fonction :
    static JPanel panneauBoxLayout (Color couleur)} 
    
    prenant en argument une couleur de classe Color, et renvoyant un panneau de classe JPanel de disposition BoxLayout verticale, de couleur de fond couleur, muni d’une marge de 10 pixels (c.f. la méthode setBorder, dont l’argument peut être produit par BorderFactory).
  2. A l’aide de la fonction précédente et de la classe JButton, construire un assemblage de panneaux ayant la structure suivante :

    Utiliser différentes couleurs pour distinguer la profondeur des composants dans la hiérarchie. Chaque bouton devra être étiqueté.

  3. Afficher le composant construit dans le panneau à onglet de l’application, avec le titre “PanneauBoxLayout”.

Gestionnaires de positions

Le but de cette partie est de créer des panneaux munis de boutons, utilisant d’autres dispositions que celle ci-dessus.

  1. Ecrire de nouvelles usines PanneauFlowLayout, PanneauBorderLayout renvoyant des panneaux munis des dispositions FlowLayout, BorderLayout, etc., c.f. le tutorial de swing pour une description de chaque disposition.
  2. Construire des panneaux à l’aide de ces usines, chacun contenant 10 boutons.
  3. Ajouter à la fenêtre principale les panneaux construits dans de nouveaux onglets, comparer les résultats.

Menu Look and Feel

On désire rajouter à la fenêtre principale un menu permettant de sélectionner un “Look and Feel” et de l’appliquer à tous les composants de l’application - c.f. la leçon Modifying the Look and Feel du tutorial de swing ainsi que celle sur les menus.

Ecrire une méthode static void ajouterSelectionLF (JFrame frame) effectuant les actions suivantes :

On complique!

Au final vous devriez obtenir une fenêtre d’affichage ressemblant à ceci :

capture d'ecran de l'application PremiersComposants



1
En programmation objet, une usine statique est une méthode statique qui lorqu’elle est appelée construit des objets en fonction des paramètres passés en argument.

Ce document a été traduit de LATEX par HEVEA