Interfaces Graphiques en Java
TD 1
Composants simples: fenêtres, panneaux, boutons, labels, menus, toolbars, etc.
Le but de ce TD consiste à créer une fenêtre graphique avec des
bordures. Puis dans un second temps à decouvrir comment
ajouter un ensemble de composants simples à celle-ci.
Exercice 1 : SimpleFrame
- Écrire une classe SimpleFrame permettant d'afficher une
fenêtre. Nous utiliserons pour cela la classe javax.swing.JFrame.
On lui donnera simplement :
- un titre (voir le constructeur ou setTitle())
- une taille minimale (setSize())
Puis on l'affichera via la commande show().
- Dans un second temps, ajouter à cette fenêtre un label (JLabel), représentant
une étiquette (un texte court).
Pour récuperer le conteneur permettant d'ajouter des composants à une fenêtre
nous utiliserons la méthode getContentPane().
- Puis, ajouter un bouton "OK" (JButton) en plus du label.
Que se passe-t-il ? Comment faire pour que le label ne disparaisse pas.
Exercice 2 : SimpleFrame2 et Découpage objet
D'une manière générale, on n'ajoute pas directement des composants
dans le contentPane d'une fenêtre JFrame. On préfère
spécifier l'ensemble des composants désirés dans un panel
(JPanel), puis indiquer que ce pannel est le nouveau
contentPane (via la commande setContentPane())
de la fenêtre JFrame.
Modifier l'exemple SimpleFrame en ce sens.
Exercice 3 : À la découverte de nouveaux composants
Créer une nouvelle JFrame nommée Découverte et
ajouter dans son contentPane les composants suivant :
- un bouton (JButton)
- un champ de texte (JTextField)
- une zone de texte (JTextArea)
- une série de boutons à cocher (JCheckBox)
Utiliser pour cela un panel (Panel) auxiliaire
contenant l'ensemble des checkbox.
- une série de boutons radio (JRadioButton)
- Ajouter une bulle d'aide contextuelle (setToolTipText())
sur le bouton.
- Rendre le bouton inopérent (setEnabled())
- Changer la couleur du texte et du fond du bouton
(setForeground() et setBackground()).
Attention à la transparence par défaut (setOpaque()).
- Ajouter un texte dans le champ de texte et dans la zone de texte.
(setText())
- Rendre le champ de texte non éditable (setEditable()))
- Ajouter une bordure aux séries de boutons (le méthode est setBorder(), en fournissant
un objet de type java.swing.border.Border créé via les méthodes de la classe
java.swing.BorderFactory).
- S'arranger pour qu'un seul des checkbox soit enfoncé à la fois.
Il faut pour cela définir un groupe logique de boutons (ButtonGroup),
et ajouter chaque checkbox au groupe de boutons.
Exercice 4 : Les Menus
Dans une nouvelle fenêtre JFrame, nous allons ajouter des menus.
- Créer une barre de menu (JMenubar).
- Ajouter un menu File (JMenu).
- Ajouter deux items Open et Save (des JMenuItem)
au menu File (à l'aide de la méthode add()).
- Puis ajouter le menu File à la barre de menu.
- Enfin, ajouter la barre de menu à la fenêtre (setJMenuBar()).
Dans un second temps, ajouter au autre menu contenant des checkboxs
(JCheckBoxMenuItem). Puis grouper les.
Exercice 5 : La barre d'outils
Dans une nouvelle fenêtre JFrame, nous allons ajouter une barre d'outil.
Pour cela, nous allons auparavant créer les boutons contenant des images
pour mettre ceux-ci à l'intérieur de la barre d'outils.
- Créer trois boutons Cut, Copy et Paste
- Associer (setIcon()) une image (ImageIcon) à chaque
bouton.
- Créer une barre de d'outil (JToolBar)
- Ajouter les trois boutons à la barre d'outil (avec des
add(button).
Puis ajouter la barre d'outil à la fenêtre (avec un
add(toolbar, BorderLayout.NORTH),
pour plus d'info voir la doc de java.awt.BorderLayout)).