TextArea
Le composant TextArea fournit un champ de saisie de texte multi-lignes où les utilisateurs peuvent taper et éditer de plus longs blocs de texte. Il prend en charge les limites de caractères maximales, la structure des paragraphes, le retour à la ligne et les règles de validation pour contrôler la manière dont l'entrée est gérée.
Création d'un TextArea
Créez un TextArea en passant un label à son constructeur. Des propriétés comme le texte d'espace réservée, les limites de caractères et le comportement de retour à la ligne peuvent être configurées via des méthodes de définition.
Afficher le code
- TextAreaView.java
Gestion des paragraphes
Le composant TextArea fournit des fonctionnalités pour la gestion des paragraphes de texte, ce qui le rend idéal pour les applications nécessitant l'édition de documents ou la saisie de texte structuré.
Voici un exemple rapide de comment construire et manipuler le contenu des paragraphes :
TextArea textArea = new TextArea();
// Insérer un paragraphe au début
textArea.addParagraph(0, "Ceci est le premier paragraphe.");
// Ajouter un autre paragraphe à la fin
textArea.addParagraph("Voici un deuxième paragraphe.");
// Ajouter du contenu supplémentaire au premier paragraphe
textArea.appendToParagraph(0, " Cette phrase continue la première.");
// Supprimer le deuxième paragraphe
textArea.removeParagraph(1);
// Récupérer et imprimer tous les paragraphes actuels
List<String> paragraphs = textArea.getParagraphs();
for (int i = 0; i < paragraphs.size(); i++) {
System.out.println("Paragraphe " + i + ": " + paragraphs.get(i));
}
Validation
Le composant TextArea prend en charge deux types de validation complémentaires : les contraintes structurelles et les contraintes de contenu.
Les contraintes structurelles se concentrent sur la façon dont le texte est organisé et visuellement agencé. Par exemple :
setLineCountLimit(int maxLines)limite le nombre de lignes autorisées dans la zone de texte.setParagraphLengthLimit(int maxCharsPerLine)limite le nombre de caractères par paragraphe (ou ligne), aidant à faire respecter la lisibilité ou les normes de formatage.
Les contraintes de contenu, en revanche, traitent de la quantité totale de texte saisi, indépendamment de la façon dont il est distribué :
setMaxLength(int maxChars)plafonne le nombre total de caractères autorisés dans tous les paragraphes.setMinLength(int minChars)impose une longueur minimale, garantissant qu'un contenu suffisant soit fourni.
La démo suivante permet aux utilisateurs d'ajuster les limites de validation—comme le nombre maximum de caractères, la longueur des paragraphes et le nombre de lignes—en temps réel et de voir comment le TextArea réagit.
Afficher le code
- TextAreaValidationView.java
Retour à la ligne et retour automatique à la ligne
Vous pouvez contrôler si le texte se renvoie à la ligne ou défile horizontalement en utilisant setLineWrap(). Lorsque le retour à la ligne est désactivé, les lignes continuent horizontalement au-delà de la zone visible, nécessitant un défilement. Lorsqu'il est activé, le texte se renvoie automatiquement à la ligne suivante lorsqu'il atteint le bord du composant.
Pour affiner davantage le comportement du retour à la ligne, setWrapStyle() vous permet de choisir entre deux styles :
WORD_BOUNDARIESrenvoie le texte à des mots entiers, préservant le flux de lecture naturel.CHARACTER_BOUNDARIESrenvoie à des caractères individuels, permettant un meilleur contrôle sur la mise en page, surtout dans des conteneurs étroits ou de largeur fixe.
Ces options de retour à la ligne travaillent main dans la main avec les contraintes structurelles comme les limites de nombre de lignes et de longueur de paragraphes. Tandis que le retour à la ligne détermine comment le texte s'écoule dans l'espace disponible, les limites structurelles définissent combien d'espace le texte est autorisé à occuper. Ensemble, elles aident à maintenir à la fois la structure visuelle et les limites d'entrée des utilisateurs.
Afficher le code
- TextAreaWrapView.java
Texte prédit
Le composant TextArea prend en charge des suggestions de texte intelligentes pour aider les utilisateurs à taper plus rapidement et avec moins d'erreurs. Au fur et à mesure que les utilisateurs saisissent du texte, des suggestions prédictives apparaissent en fonction de l'entrée actuelle, leur permettant de compléter des phrases courantes ou attendues.
Les prédictions peuvent être acceptées en appuyant sur la touche Tab ou ArrowRight, insérant le texte suggéré dans l'entrée de manière transparente. Si aucune prédiction adéquate n'est disponible à un moment donné, l'entrée reste inchangée, et l'utilisateur peut continuer à taper sans interruption—garantissant que la fonctionnalité ne gêne jamais.
Ce comportement prédictif améliore à la fois la vitesse et l'exactitude, en particulier dans des scénarios d'entrée répétitive ou dans des applications où la cohérence des phrases est importante.
Afficher le code
- TextAreaPredictedTextView.java
- text-area-predicted-text-view.css
Cette démo utilise l'API Datamuse pour fournir des suggestions de mots basées sur l'entrée de l'utilisateur. La qualité et la pertinence des prédictions dépendent entièrement de l'ensemble de données et du mécanisme de notation de l'API. Elle n'utilise pas de modèles d'IA ou de modèles de langage de grande taille (LLM) ; les suggestions sont générées par un moteur léger basé sur des règles axées sur la similarité lexicale.
État en lecture seule et désactivé
Le composant TextArea peut être réglé sur lecture seule ou désactivé pour contrôler l'interaction de l'utilisateur.
Une zone de texte en lecture seule permet aux utilisateurs de voir et de sélectionner le contenu, mais pas de l'éditer. Cela est utile pour afficher des informations dynamiques ou pré-remplies qui doivent rester inchangées.
Une zone de texte désactivée, en revanche, bloque toute interaction—y compris le focus et la sélection de texte—et est généralement stylée comme inactive ou grisée.
Utilisez le mode lecture seule lorsque le contenu est pertinent mais immutable, et le mode désactivé lorsque l'entrée n'est pas actuellement applicable ou doit être temporairement inactive.
Afficher le code
- TextAreaStatesView.java