Auto-Redimensionnement JTextArea
Je veux que mon JTextArea pour redimensionner lui-même (verticalement) lors de la dernière ligne (que la zone de texte de la hauteur de l'offre) est atteint et que l'utilisateur veut commencer une nouvelle ligne. Vous savez, comme la zone de texte dans MSWord.
J'ai une idée pour utiliser getLineCount()
et déterminer (si nécessaire) la nouvelle hauteur de la JTextArea. Avez-vous, ou connaissez des meilleures approches pour la mise en œuvre de cette?
OriginalL'auteur Halo | 2010-04-08
Vous devez vous connecter pour publier un commentaire.
En fait, la
JTextArea
toujours a la bonne taille, donc toutes les lignes de texte sont visibles. Ce que vous ressentez, c'est probablement que vous enveloppé la zone de texte dans unJScrollPane
. Juste omettre le volet de défilement et de faire de la zone de texte un enfant direct de l'conteneur.Une autre solution est d'écouter les événements de redimensionnement de la zone de texte et la taille du panneau défilant en conséquence. De cette façon, vous pouvez atteindre une certaine taille, et puis commencer à afficher des barres de défilement (par exemple, quand quelqu'un les pâtes de 500 ko de texte dans la zone de texte).
Vous avez juste à définir la taille de la Composite, de sorte que la zone de texte peut se développer. La zone de texte doit ajuste automatiquement la taille du texte à l'intérieur.
eh bien, il ne fonctionne pas. BTW, je suis passé à l'aide de JTextPane, mais toujours le problème avec l'expansion continue
hmm, je pense que c'est un problème avec la mise en place du texte. J'utilise setText (), mais probablement que je devrais utiliser insertString(). je vais essayer ça
non, il ne fonctionne pas non plus
OriginalL'auteur Aaron Digulla
J'ai eu le même problème. De mes tests, je ne crois pas que le JTextArea définit sa taille de façon dynamique. Au lieu de cela, sa taille semble être limité par son contenant (un Composite dans mon cas). Cependant, le JTextArea ne changer sa taille par défaut basé sur le texte qu'elle contient. À partir de la documentation:
OriginalL'auteur Hillary Ryan
J'ai eu le même problème,j'ai mis le JTextArea dans un JScrollPane et de définir la taille par défaut de la JTextArea, et je crois que c'est la cause du problème.
De sorte que la bonne solution est de mettre le JTextArea dans un JScrollPane, et de ne pas toucher à la taille par défaut de la JTextArea, ensemble JScrollPane à la place.
OriginalL'auteur MrVPlusOne
Aller à JTextArea "Propriétés" - liste de contrôle "formatez les lignes".
OriginalL'auteur Arvy Dharmmaparayaandhika