IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

JTextArea et redimensionnement


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Par défaut JTextArea et redimensionnement
    Bonjour,

    J'ai presque honte de poser cette question, mais à vrai dire, je ne trouve pas la solution à mon problème.

    J'ai un JTextArea. Lors de sa construction, je fixe le nombre de colonnes et le nombre de lignes. Je fixe aussi le lineWrap à true, histoire de passer à la ligne suivante quand cela est nécessaire.

    Mon problème est le suivant :
    Lorsque je saisie du texte, la JTextArea augmente sa taille alors que je voudrai quelle reste fixe. En fait, je voudrai même fixer le nombre de caractères possible dans la zone.

    Comme un petit bout de code vaut mieux qu'un long discours :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    	private JTextArea textArea = null;
     
    	private JTextArea getTextArea() {
    		if (textArea == null) {
    			textArea = new JTextArea();
    			textArea.setMargin(new Insets(V_MARGIN, H_MARGIN, V_MARGIN, H_MARGIN));
    			textArea.setLineWrap(true);
    			textArea.setColumns(25);
    			textArea.setRows(2);
    		}
    		return textArea;
    	}
    Jai regardé dans la JavaDoc, mais je n'ai pas trouvé mon bonheur. Quelqu'un aurait-il une solution SVP?

    Merci par avance.

  2. #2
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 111
    Par défaut
    avec un setPreferredSize et un setMaximumSize peut etre?

    ca depend toujours du contenant ces histoires la.

  3. #3
    Membre expérimenté Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Par défaut
    Merci pour la réponse,

    Mais j'ai essayé et cela ne change rien.

    En fait même en fixant la taille du composant, je ne pense pas que cela influe sur la longueur max du texte contenu dans le JTextArea.

    Et le composant grandit toujours.

    Mon contenant est le ContentPanel d'une JFrame, avec un BorderLayout. Le JTextArea est situé dans la partie NORTH.

  4. #4
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut
    Utilises un JScrollPane

    Il existe bon nombre de discussion à ce sujet, mais voilà comment mettre un JScrollPane sur ton JTextArea :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JScrollPane scroll = new JScrollPane(textarea);
    C'est très simple en effet .

    Si tu ne sais pas ce que c'est, un JSrollPane va rajouter des barres de défilements : ton textarea aura ainsi toujours les mêmes dimensions.

    Bonne chance.

  5. #5
    Membre expérimenté Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Par défaut
    Merci pour la réponse, mais ce n'est pas vraiment ce que je souhaite faire.

    Ce n'est pas seulement la taille du composant graphique qui m'intéresse mais aussi (et surtout) sont contenu.

    Je souhaite que le JTextArea fasse seulement 25 colonnes par 10 et ne puisse accepter que 250 caractères sans JAMAIS pouvoir les dépasser.

    Le JScollPane va seulement ajouter des SrollBar et cela ne résoudra pas mon problème.

  6. #6
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Dans ce cas tu peux peut être utiliser un Listener. Tu met un KeyListener sur ton TextArea (pour "écouter" les frappe clavier). A chaque frappe tu teste si le nombre de caractère déja contenu est > ou non à 250.Si il est superieur tu n'affiche pas sinon tu affiche. Il faut faire attention au frappe des caractère return et suppr qui peuvent être executé même si la zone de texte en pleine.

    En espérant t'aider

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme redimensionnement du Focus JtextArea
    Par otam2 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 30/09/2011, 11h14
  2. Empêcher redimensionnement automatique JTextArea
    Par Titelouve dans le forum Composants
    Réponses: 6
    Dernier message: 29/09/2010, 20h03
  3. JDialog et JTextarea qui se redimensionne
    Par pcouas dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 11/02/2009, 19h46
  4. Redimensionnement des Paquets IP sur un Réseau Local
    Par Bonoboo dans le forum Développement
    Réponses: 2
    Dernier message: 12/07/2002, 15h40
  5. Redimensionnement d'une surface
    Par Freakazoid dans le forum DirectX
    Réponses: 4
    Dernier message: 01/07/2002, 22h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo