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

Composants Java Discussion :

Changer le texte d'un JTextArea


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 4
    Par défaut Changer le texte d'un JTextArea
    Bonjour,

    J'ai un petit soucis avec le code que je développe en ce moment. Je n'arrive pas à changer le texte d'un JtextArea. J'utilise la méthode setText(String) mais ça ne fonctionne pas, mon jta reste désespérément vide ! D'ailleurs ça ne fonctionne pas non plus avec append(String).

    Cependant il faut que je précise les choses. Mon jta est déclaré . En fait, je ne veux pas que l'utilisateur change le contenu du jta, mais je veux pouvoir le changer par programmation. Je n'avais pas le souvenir que de mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monJTA.setEditable(false)
    impactait le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monJTA.setTexte("mon texte")
    . Qu'en pensez-vous ??

    Voici plus en détails mon code :
    La déclaration du JTA (dans un JScrollPane) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    taAdrFact = new JTextArea();
    taAdrFact.setName("taAdrFact");
    taAdrFact.setEditable(false);
     
    JScrollPane jsp = new JScrollPane();
    jsp.setPreferredSize(new Dimension(200, 80));
    jsp.setMinimumSize(new Dimension(200, 80));
    		jsp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    		jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    jsp.add(taAdrFact);
     
    GridBagConstraints gbcTaAdrFact = new GridBagConstraints();
    gbcTaAdrFact.gridx = 1;
    gbcTaAdrFact.gridy = 6;
    gbcTaAdrFact.gridwidth = GridBagConstraints.REMAINDER;
    gbcTaAdrFact.gridheight = 2;
    gbcTaAdrFact.anchor = GridBagConstraints.BASELINE_LEADING;
    gbcTaAdrFact.fill = GridBagConstraints.HORIZONTAL;
    gbcTaAdrFact.insets = new Insets(8,8,0,0); //top, left, bottom, right.
    panPanneauGNL.add(jsp, gbcTaAdrFact);
    Voici la méthode qui modifie le contenu du JTA :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    /**
    * Réactualise le contenu des champs avec les valeurs présente dans le modèle. 
    */
    private void actualiser()
    {
            cbCivilite.setSelectedItem(getMdl().getCivilite());
            tfPrenom.setText(getMdl().getPrenom());
    	tfNom.setText(getMdl().getNom());
    	tfRaisonSociale.setText(getMdl().getRaisonSociale());
    	tfTelFixe.setText(getMdl().getTelFixe());
    	tfTelPort.setText(getMdl().getTelPort());
    	if (getMdl().getAdrFact() != null)
    	{
    		//debug ------
    		System.out.println("il y a une adresse dans le modèle");
    		//------------
    		taAdrFact.setText(getMdl().getAdrFact().getStringImpression());
    	}
    }
    Voilà, donc en fait ma question est de savoir comment afficher un texte dans un JTextArea (modifiable par programmation, mais pas par l'utilisateur) ???

    Je suis preneur de tout (bon ) conseil.
    Merci pour votre attention.

  2. #2
    Membre émérite Avatar de fraco
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 750
    Par défaut
    Bizarre !

    Chez moi pas de problème...
    (Netbeans, jTextArea1 sur la frame, edtable false, setText fonctionne.

    if (getMdl().getAdrFact() != null)
    {
    //debug ------
    System.out.println("il y a une adresse dans le modèle");
    //------------
    taAdrFact.setText(getMdl().getAdrFact().getStringImpression());
    }
    est-ce que tu vois le message ""il y a une adresse dans le modèle" ?
    et si tu mets taAdrFact.setText("Hello"); ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 4
    Par défaut
    Merci d'y avoir jeté un œil.

    En effet c'est très bizarre, car avant j'avais toujours fait comme ça.

    Il passe bien dans le System.println que j'ai mis pour essayer de débugger le code.

    Le test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if (getMdl().getAdrFact() != null)
    		{
    			//debug ------
    			System.out.println("il y a une adresse dans le modèle");
    			System.out.println(getMdl().getAdrFact().getStringImpression());
    			//------------
    			taAdrFact.setText(getMdl().getAdrFact().getStringImpression());
    		}
    Le résultat dans la console :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Ouverture de la fenêtre de saisie d'un client.
    il y a une adresse dans le modèle
    63000 CLERMON-FERRAND
    J'ai également essayé de faire ce que tu dis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    taAdrFact.setText("Hello")
    Et même quand je créer le JTA :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    taFactAdr = new JTextArea("Hello");
    Il n'y a rien qui s'affiche.

    Je ne comprends vraiment pas ce qui se passe !!!

    La seul chose qui est différente par rapport à ce que je faisais dans le passé, c'est que j'utilise un GridBagLayout (pour la première fois). Mais je ne pense pas avoir fait d'erreur, et je ne vois pas en quoi ça pourrait impacter le texte contenu dans le JTA. Et si autre chose, je suis Eclipse version: 3.4.1 (ganymède).

    Là je suis vraiment coincé. Si tu as d'autre idée n'hésite pas.

  4. #4
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 4
    Par défaut
    J'apporte les dernières nouvelles.
    Après plusieurs tests j'ai réussi à voir d'où venait le problème.

    En faite pour mettre mon jta dans un jsp, j'avais créé un jsp, puis j'ai mis mon jta dans le jsp via "jsp.add(taAdrFact);" ce qui ne fonctionne pas. En fait il n'ajoute pas le jta dans le jsp.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    taAdrFact = new JTextArea();
    taAdrFact.setName("taAdrFact");
    taAdrFact.setEditable(false);
     
    JScrollPane jsp = new JScrollPane();
    jsp.setPreferredSize(new Dimension(200, 80));
    jsp.setMinimumSize(new Dimension(200, 80));	jsp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    jsp.add(taAdrFact);
    		
    GridBagConstraints gbcTaAdrFact = new GridBagConstraints();
    gbcTaAdrFact.gridx = 1;
    gbcTaAdrFact.gridy = 6;
    gbcTaAdrFact.gridwidth = GridBagConstraints.REMAINDER;
    gbcTaAdrFact.gridheight = 2;
    gbcTaAdrFact.anchor = GridBagConstraints.BASELINE_LEADING;
    gbcTaAdrFact.fill = GridBagConstraints.HORIZONTAL;
    gbcTaAdrFact.insets = new Insets(8,8,0,0); //top, left, bottom, right.
    panPanneauGNL.add(jsp, gbcTaAdrFact);
    Après avoir modifié mon code comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    taAdrFact = new JTextArea();
    taAdrFact.setName("taAdrFact");
    taAdrFact.setEditable(false);
    		
    //JScrollPane jsp = new JScrollPane();  --> ça plus jsp.add(jta) ne foncionne pas.
    JScrollPane jsp = new JScrollPane(taAdrFact); //Il faut mettre le composant qui doit être scrollable au moment de la création du jsp.
    jsp.setPreferredSize(new Dimension(200, 80));
    jsp.setMinimumSize(new Dimension(200, 80));
    jsp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    //jsp.add(taAdrFact); --> voir au dessus.
    
    // ... etc ...
    Maintenant ça fonctionne. Donc ce que je ne savais pas, c'est pour "mettre" un composant dans un jsp, il faut l'indiquer dès la création du JScrollPane.

    Si d'ailleurs quelqu'un veut bien me confirmer que c'est la bonne marche à suivre, ça me rassurera. Et dans ce cas à quoi sert la méthode jsp.add(comp) ??

  5. #5
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Pas forcément, il suffit juste de ne pas utiliser la méthode add mais la méthode setViewportView.

  6. #6
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 4
    Par défaut
    Ah d'accord, merci pour le conseil. J'en prends bonne note.

    Je marque le sujet comme résolu.
    Merci à tous.

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

Discussions similaires

  1. Changer couleur d'un mot dans le texte d'un JTextArea
    Par apicard3 dans le forum Composants
    Réponses: 4
    Dernier message: 18/04/2013, 09h37
  2. changer le texte de tous les Items dans un mainmenu
    Par C.M dans le forum Composants VCL
    Réponses: 7
    Dernier message: 25/07/2004, 13h19
  3. [swing]Centrage du texte d'un JTextArea
    Par Lezoul dans le forum Composants
    Réponses: 3
    Dernier message: 15/06/2004, 15h07
  4. Insérer de texte sans un JtextArea
    Par OxN dans le forum Débuter
    Réponses: 7
    Dernier message: 11/06/2004, 12h16
  5. [MFC] Changer le texte dans la barre de statut
    Par karl3i dans le forum MFC
    Réponses: 2
    Dernier message: 13/02/2004, 13h15

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