Académique Documents
Professionnel Documents
Culture Documents
Dans ce tp nous abordons les Interfaces Graphique et, par extension, la programmation
événementielle. Le langage Java propose différentes bibliothèques pour programmer des
interfaces graphiques, mais dans ce tp, nous utiliserons essentiellement le package
javax.swing. Ce tp vous permettra d'apprendre à utiliser l'objet JFrame, présent dans le
package javax.swing. Vous serez alors capables de créer une fenêtre, de définir sa taille, etc.
En réalité, une fenêtre n'est qu'une multitude de composants posés les uns sur les autres et
que chacun possède un rôle qui lui est propre.
La création d'une application avec interface graphique passe par l'adjonction d'une
fenêtre (via New JFrame Form). Netbeans génère automatiquement un fichier
source java de même nom que la fenêtre contenant la définition d'une sous-classe de
JFrame (la classe swing représentant les fenêtres) que nous avons appelée la classe
fenêtre. Une application peut comporter plusieurs fenêtres et donc plusieurs classes
fenêtre.
Le fichier source représentant une classe fenêtre peut être visualisé en mode Source
ou en mode Design. En mode Source, l'interface graphique de Netbeans est adaptée à
l'édition du code source. En mode Design, elle est adaptée au design de la fenêtre et
de ses composants.
Fenêtres de NetBeans en mode Design
Voici l'aspect de l'interface graphique de NetBeans en mode Design:
On y trouve:
en haut à gauche, la fenêtre Projects. Cette fenêtre liste les différents projets
ouverts sous Netbeans. Elle permet de modifier les propriétés générales d'un
projet, d'ajouter ou de supprimer un fichier source à un projet donné, etc...
au centre: la fenêtre de l'application avec ses composants.
en bas à gauche la fenêtre Navigator: elle liste tous les composants de
l'application.
en haut à droite: la palette des composants. C'est à partir de cette palette que
l'on peut sélectionner différents composants et les déposer sur la fenêtre.
en bas à droite: la fenêtre Properties: elle permet d'afficher les propriétés d'un
composant particulier et éventuellement, de les modifier manuellement.
Pour modifier les propriétés d'un composant, il faut d'abord le sélectionner, soit en
cliquant sur ce composant dans la fenêtre de l'application, soit en cliquant sur son nom
dans la fenêtre Navigator. La fenêtre Properties fait alors apparaitre les différentes
propriétés de ce composant pouvant être modifiées.
3. Fenêtres
Pour une interface graphique, la composante principale est la fenêtre présentée dans
la classe JFrame, qui aide le développeur d’avoir ce qu’il veut, en utilisant
NetBeans :
- Créer un projet Java,
- Un clic droit avec le bouton de la souris sur le projet, et on choisit New après
JFrame Form, pour créer une nouvelle classe héritée de JFrame , on obtient
l’interface suivante :
- En bas à gauche : on trouve la liste des composantes dans notre fenêtre (dans
notre exemple : il n’ y a que JFrame),
- A droite en haut : on trouve une palette des principales composantes qu’on
peut utiliser dans notre fenêtre (boutons,… )
- A droite en bas : on trouve la liste des principales propriétés du composant
sélectionné.
- Pour modifier les propriétés, on clique avec le bouton droit de la souris sur le
composant qu’on veut modifier et on choisit propriétés, on aura la petite
fenêtre suivante :
- Exemple
Faire un click droit sur la fenêtre pour faire apparaître le menu contextuel. Et choisir
ensuite :
- Events/Mouse/mouseClicked.
Cela signifie que nous désirons attacher un événement lorsque
l’évènement click se produira sur le bouton.
- Automatiquement, NetBeans vous propose de remplir le code qui sera associé
à l’événement Click sur le bouton. Le nom de la procédure est clair de ce
point de vue.
- Je vous propose le code suivant :
System.exit(0);
4. Conteneurs
Une composante qui contient d’autres composantes, on prend l’exemple d’un panneau
(Panel),
Les boutons radio sont en quelque sorte des cases à cocher qui s'excluent
mutuellement à l'intérieur d'un même groupe. Lorsqu'un bouton radio est coché les
autres boutons du groupe sont automatiquement décochés.
Les boutons radios sont représentés par la classe JRadioButton et les groupes de
boutons par la classe: ButtonGroup.
a. Coté design
Le groupe de bouton associé à un bouton radio donné est défini dans la propriété
buttonGroup de ce dernier. L'étiquette d'un bouton radio est définie dans sa
propriété text.
b. Gestionnaire d'évènement
c. Méthodes utiles
isSelected() : retourne un booléen : true si le bouton radio est coché, false sinon.
a. Coté design
Pour définir les entrées d'une combo box à la main, utilisez la propriété model. En
cliquant sur les ... à droite de la propriété vous ouvrez un éditeur qui vous permet de
saisir les intitulés des différents choix.
b. Gestionnaire d'évènement
Le fait de sélectionner une entrée dans une combo box génère un évènement de type
ActionPerformed. Pour définir un gestionnaire pour cet évènement, faites un double
clic sur le combo box. Le nom de la procédure évènementielle générée par NetBeans
est composé du nom de le combo box suivi de ActionPerformed.
Les boutons sont des composantes permettent de déclencher un événement. Ils sont
présentés par la classe JButton, (bouton classique). Ses principales propriétés sont :
a. Coté design
b. Gestionnaire d'évènement
c. Méthodes utiles
- isSelected() : retourne un booléen : true si la case est cochée, false sinon.
9. Champs de texte
a- étiquettes « JLabel »,
- permet d’afficher du texte ou une image.
- peut contenir plusieurs lignes et il comprend les tag HTML.
b- des champs pour faire entrer des informations générales « JTextField »,
permet d’écrire du texte à une seul ligne.
a. Coté design
La propriété text d'un champ de texte peut vous servir à y mettre une valeur initiale
ou valeur par défaut. Notez qu'elle contient au départ le nom du champ de texte. Si
vous souhaitez que le champ de texte soit initialement vide, il vous faudra donc
effacer cette valeur.
b. Méthodes utiles
a. Coté désign
b. Méthodes utiles
11. Menus
Les menus sont des boutons qui se situent en haut de l’interface de l’application qui
servent à contenir l’ensemble des principales tâches de l’application qu’on développe
et permet d’avoir une visualisation et une structure claires du programme.
Les menus sont organisés en trois niveaux: une barre de menu contient différents
menu et chaque menu contient plusieurs entrées de menu. Pour fixer les idées, voici
par exemple le menu Run de NetBeans déployé. Les entrées de menu p
euvent être associées à des raccourcis clavier, Dans NetBeans, la touche F6
combinée avec la touche majuscule active l'action associée à l'entrée Run File.
Si on a une barre de menu JMenuBar, on ajoute des JMenu dans la barre, et les
entrées de menu, par la classe JMenuItem.
- Pour ajouter un menu dans la barre de menu: clic droit sur la barre de menu,
puis sélectionner Add Menu.
- Pour ajouter une entrée dans un menu: clic droit sur le menu, sélectionner Add
From Palette.
Méthodes utiles
Exercice
Utilisez les JLabel et les JTextFiled, JTextArea les boutons pour construire une
fenêtre similaire à la fenêtre ci dessous.
Lorsque l'utilisateur clique sur le bouton A, le texte "le bouton A" s'affiche dans le
champ de texte et le texte "Clic sur le bouton A" vient s'ajouter à la zone de texte.
Exercice
Utilisez les JLabel et les JTextFiled, JTextArea les boutons pour construire une
fenêtre similaire à la fenêtre cidessous.