Interfaces Graphiques en Java
TD 2
Style de mise en page (layout)
Exercice 1 : LayoutExample
Écrire une classe LayoutExample permettant de visualiser,
dans des frames internes de classe JInternalFrame, les mises
en pages gérées par les classes :
- FlowLayout, utilisée par défaut dans les JPanel;
- GridLayout, utilisée pour répartir les composants dans
une grille régulière;
- BorderLayout, utilisée par défaut dans le
contentPane des JFrame;
- BoxLayout, utilisée pour aligner les composants dans une
boîte suivant un axe choisi (X_AXIS pour l'axe
horizontal et Y_AXIS pour l'axe vertical);
On pourra positionner les différents JInternalFrame dans un
JDesktopPane qui représente alors le conteneur du bureau
virtuel contenant les différentes frames internes. Ce
desktop pourra être ajouté au contentPane de la
JFrame visualisant l'ensemble.
Essayer de redimenssioner chacune des JInternalFrame pour
observer le comportement des composants que leur layout gère.
Insérer des appels à la méthode pack() sur chacune de ces
JInternalFrame avant de les ajouter au JDesktopPane
et observer l'effet de ces appels.
Exercice 2 : GridBagLayout
Écrire une classe permettant d'afficher un formulaire du type de
celui-ci :

Pour cela, on veut utiliser les classes GridBagLayout et
GridBagConstraints
- Faire hériter votre classe de JFrame.
- Créer un GridBagLayout afin de le positioner comme
gestionnaire de layout du contentPane de la JFrame.
- Créer les différents composants nécessaires pour votre formulaire
(JCheckBox, JTextField, JButton,
JComboBox, etc.).
- Découpez les différentes parties de votre formulaire et ajoutez
dans le contentPane les différents composants en spécifiant, pour
chacun d'entre eux, les paramètres distincts du layout à l'aide d'un
objet GridBagConstraints.
Exercice 3 : Layout Dynamique
Écrire un programme qui propose, dans une partie d'une fenêtre, la
visualisation de plusieurs composants (par exemple des labels) et dans
l'autre partie de la fenêtre un ensemble de choix (sous la forme de
radio boutons) permettant dynamiquement de changer le layout
d'organisation des composants dans la première partie.