Les zones de texte

Une zone de texte est un composant permettant d'afficher ou de saisir du texte. Contrairement au champ de texte, le texte contenu dans une zone de texte peut être réparti sur plusieurs lignes. Dans le package swing, les champs de texte sont représentés par la classe JTextArea.

Sélection dans la palette

ZoneDeTexteDsPalette.jpg, 57kB


Coté design

Barres de défilement

Lorsque vous déposez une zone de texte sur la fenêtre, NetBeans vous dépose une zone de texte à l'intérieur d'un JScrollPane, c'est à dire un panneau avec des barres de défilement. Vous ajoutez donc de ce fait deux composants à l'application: la zone de texte ainsi que le panneau dans lequel elle est contenue.

L'intéret du JScrollPane apparait lorsque le texte est trop grand pour être affiché en entier dans la zone de texte. S'il contient trop de lignes, une barre de défilement verticale sera automatiquement affichée pour permettre à l'utilisateur de voir les lignes manquantes. Si une ligne est trop longue, tout dépend comment votre zone de texte est configurée:

Redimensionnement automatique

Vous souhaitez peut être que votre zone de texte soit automatiquement redimensionnée en fonction de la taille de la fenêtre. Si tel est le cas, faites un clic droit sur la zone de texte et sélectionnez Auto Resizing. Vous pouvez ensuite choisir un redimensionnement vertical et/ou horizontal.

Méthodes utiles

Exemple

L'exemple présenté ici se trouve dans le dossier Exemple-Swing/ZoneTexte. Il s'agit d'une nouvelle version du projet AfficherEffacer (voir exercices du cours Premières Notions) n'utilisant pas les fonctions de la librairie JavaETBib.

Fenêtre du projet
AfficherEffacer.jpg, 32kB
Extraits de code

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. Voici le code de la procédure évènementielle associée:

private void BoutonAActionPerformed(...) {                                        
   ChampTexte.setText("le bouton A");
   ZoneTexte.append("Clic sur le bouton A\n");
}   

Notez l'utilisation du caractère spécial \n, représentant un passage à la ligne. En placant un \n dans une chaine de caractère, il y aura un passage à la ligne à l'endroit où ce caractère est placé. S'il est placé à la fin, toute nouvelle chaine de caractères contacténée à celle-ci sera placée à la ligne suivante.