Probleme de JTextArea

Signaler
Messages postés
14
Date d'inscription
jeudi 24 août 2006
Statut
Membre
Dernière intervention
14 avril 2008
-
Messages postés
26
Date d'inscription
vendredi 23 mars 2007
Statut
Membre
Dernière intervention
6 mars 2009
-
je veut afficher un fichier dans un JTextArea a chaque fois je clic sur un bouton afficher


 if(arg0.getSource()==afficher_script)

            {

            Open_Script();      

 }


le probleme que l'affichage n'est juste que pour la premiere fois que je appel cette methode

ce pendand l'affichage sur le console est  juste !!!!

le probleme est donc dans le JTextArea qui garde le meme contenu.

voici le code:


void Open_Script()

     { 

    String  ch="";

       BufferedReader fichier;

       String ligne;

        System.out.println("Ouverture de fichier SCRIPT");

      try

      {

      fichier=new BufferedReader(new FileReader("Fichier/f.sh"));

     

      while((ligne=fichier.readLine())!=null)

      {

      

      ch=ch+ligne+"\n";


      }

//test d'affichage sur le console

      System.out.println(ch);

      JTextArea txt;

       JScrollPane P;

      txt=new  JTextArea(ch);

      P=new JScrollPane(txt);

        P.setPreferredSize(new Dimension (90,90));

        conteneur_affich.add(P,BorderLayout.CENTER);

        conteneur_affich.setVisible(true);   

       

      fichier.close();

        txt.enable(false);   

   

      }

      catch (FileNotFoundException e) {

       String msg="Le Script n'est pas encore généré";

       JOptionPane.showMessageDialog(null,msg," Attention ",JOptionPane.ERROR_MESSAGE);

     

      

      }

      catch (IOException e) {

       e.printStackTrace();

      }

     

     }

est ce que je doit utiliser autre chose ou bien il ya une methode de supprimer le JTextArea!!

2 réponses

Messages postés
845
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
1 août 2017
2
Salut.
si tu veux le supprimer du container, tu peux faire "conteneur_affich.remov(txt);" OU si tu veux supprimer ce qu'il y a a l'interieur, tu peux faire "txt.setText("");"

j'espere avoir repondu a ta question.
+
Messages postés
26
Date d'inscription
vendredi 23 mars 2007
Statut
Membre
Dernière intervention
6 mars 2009

tout simplement je crois qu il ne faut pas instancier ces truc dans la fonction Open_Script () :

 JTextArea txt;
 JScrollPane P;
 txt=new  JTextArea(ch);
 P=new JScrollPane(txt); 
 P.setPreferredSize(new Dimension (90,90));
 conteneur_affich.add(P,BorderLayout.CENTER);
 conteneur_affich.setVisible(true);

tu peux faire comme ca :
1- declarer les variables JTextArea txt et JScorllPane P,comme variable d'instance en mode private c preferable
2- instancier tes classes au nuveau du constructeur:
    txt=new  JTextArea(ch);
    P=new JScrollPane(txt); 
3 - manipuler la visibilite ou bien le contenu (je sais pas vraiment ce que tu voulais faire est ce que afficher le JTextArea a la meme place ou bien lui changer de localisation ou bien juste le rendre visible ou invisible ou encore changer le contenu c tou)
tu peut faire tout ca facilement dans ta fonction Open_Script()

NB : -pour les noms de tes fonctions il est preferable d'ecrire la premiere lettre en miniscule,et meme chose pour les variable.
         - pour les instance de classe la premiere lettre en majiscule
ca fait beau en plus