[JAVA] JTextArea

eyeliner -  
jebok Messages postés 358 Statut Membre -
Bonjour,

J'aimerais en JAVA bloquer le nombre de caractères que l'on peut entrer dans un JTextArea mais sans utiliser de KeyListener. (par exemple avec une fonction du style myJTextArea.setnbchar(5);) Quelqu'un sait t'il comment faire ???
Merci !!!
A voir également:

10 réponses

TuXor Messages postés 97 Statut Membre 25
 
Salut,

je te suggère de regrder dans une aide en ligne, ou de t'en procurer une si tu n'en a pas sous la main.

Ton problème doi tse régler assez facilement avec une des methodes de la classe JTextArea.
Ce sera surement du style :

MyJtextArea.setMaxLenght(5)


Bon courage, et procure toi une bonne doc, ça aide bcp..
0
TuXor Messages postés 97 Statut Membre 25
 
Tu devrais trouver ton bonheur la dessus :

http://java.sun.com/j2se/1.4.2/docs/api/

Bonnes recherches ^^
0
jebok Messages postés 358 Statut Membre 51
 
je pense que cela devrait marcher :

JTextArea texte = new JTextArea();
Dimension d = new Dimension(int largeur, int hauteur);
texte.setMaximumSize(d);


Bonne chance.
0
Pool Orion Messages postés 124 Statut Membre 55
 
Jebok, je pense que comme cela tu bloque uniquement la taille de la zone de texte mais pas le texte contenu. En réalisant cela j'ai peur que le texte ne défile à l'intérieur du JTextArea.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jebok Messages postés 358 Statut Membre 51
 
en fait, c'est lorsque tu fais 'JTestArea(int taille)' ou un 'setPreferedSize(int taille)' que tu bloques la taille de la zone de texte et permets le défilement du texte à l'intérieur.

Mais pour être franc, je n'ai as testé ma solution.
je vais le faire et jte tiens au courant.

a+
jerome
0
eyeliner
 
Merci à vous mais le truc avec la dimension ne marche pas !!!
j'ai mit new Dimension(2,2) et je peux encore écrire dans mon JTextArea le nombre de caractères que je veux !!!
Si vous voyez une autre solution.. Merci !
0
TuXor Messages postés 97 Statut Membre 25
 
Re bonjour,
j'ai peut étre la solution, essaye avec

/*Pour indiquer le nombre de lignes que tu veux dans ta zone de text*/
setRows(int nbLignes)

/*Pour indiquer le nombre de caractères par ligne que tu autorise dans ta zone de text*/
setColumns(int nbColonnes)

ça à l'air de plus coller avec ce que tu souhaite faire.

tu peux aussi utiliser un JtextField
cet objet possède un constructeur qui te permet de spécifier directement à la création, le nombre de caractères max que tu veux ;-)

Tu devrais t'en sortir avec tout ça, sinon ben y'aura toujours qqn pour te répondre.

sinon, va voir le lien que j'ai mis plus haut c'est une bonne doc.
0
jebok Messages postés 358 Statut Membre 51 > TuXor Messages postés 97 Statut Membre
 
Non, ca ne marche pas !
setRow et setColumn détermine uniquement le nombre de lignes et de colonnes du TextArea mais on peut écrire beaucoup plus de caractères. En effet, on peut continuer à écrire et faire défiler le texte (une scrollbar apparaît je crois).

A mon avis, le plus "simple" consisterait peut être à mettre un ActionListener sur ton TextArea et ensuite faire en sorte de compter le nombre de caractères et de renvoyer un message d'erreur.
C'est un peu lourd mais ca marche
0
TuXor Messages postés 97 Statut Membre 25
 
Autant pour moi,
mais je n'ai pas d'outil de dev Java sous la main ;
donc je ne peux pas tester ^^

Essaye le JtextField(), c'est plus simple a utiliser si tu ne tient pas à faire de listener.

Si tu trouve la soluce, tient nous au courant. ++
0
karine
 
Salut eyeliner !

Va voir sur ce lien, c'est peut etre ta solution

http://www.javafr.com/forum.v2.aspx?id=138518

C'est ton tour de m'aider maintenant ;-)
0
jebok Messages postés 358 Statut Membre 51
 
c'est une solution bourinne mais apparement il n'y a pas de méthode directe...
c bizarre quand même !
0
jebok Messages postés 358 Statut Membre 51
 
Essaie ca :

JTextArea texte = new JTextArea();
texte.setInputVerifier(new PassVerifier());

class PassVerifier extends InputVerifier {
         public boolean verify(JComponent input) {
 	       JTextArea ztext = (JTextArea) input;
 	       return (ztext.getText())==6;   //remplace 6 par la longueur que tu souhaites
         }
     }
0