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 :

modifier automatiquement une variable du code (bouton associe a JtextField)


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 15
    Par défaut modifier automatiquement une variable du code (bouton associe a JtextField)
    Bonsoir à tous et à toutes,

    Je suis un bricoleur en java, j’avance tout doucement et je cherche à progresser en travaillant du code par-ci, par-là...

    J’ai trouvé un code qui permet de lire un fichier dans une fenêtre Jframe, qu’il va chercher avec le nom : String monFichier = "texte.txt";

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    class Contenu extends JPanel
      {
      private FenetreSimple maFenetre = null;
      String monFichier = "texte.txt";
      String fichierContenu= "";
      JTextArea champTexte = new JTextArea();
     
      public Contenu(FenetreSimple maFenetre)
        {
        setLayout(new BorderLayout());
     
        JButton boutonFermer = new JButton("Charger fichier");
        add(boutonFermer, BorderLayout.SOUTH);
     
        champTexte.setLineWrap(true);
        champTexte.setWrapStyleWord(true);
        add(champTexte);
     
        this.maFenetre = maFenetre;
        MyListener monEcouteur = new MyListener();
        boutonFermer.addActionListener(monEcouteur);
        }
     
      public void LireFichier()
        {
        try
          {
          RandomAccessFile raf = new RandomAccessFile(monFichier, "r");
          String ligne;
          while ( (ligne = raf.readLine()) != null )
            {
            fichierContenu += ligne;
            }
          champTexte.setText(fichierContenu);
          }
       catch (IOException e)
         {
         System.out.println("erreur dans: " + e);
         }
        }
     
      class MyListener implements ActionListener
        {
        public void actionPerformed(ActionEvent event)
          {
          LireFichier();
          }
        }
      }
    Si je change le nom du fichier à importer en toto.txt, par exemple, je suis obligé de modifier manuellement le code qui est "texte.txt";

    Je voudrais pouvoir le modifier automatiquement en utilisant un JtextField associé à un Jbutton... un gestionnaire d'actions, en quelque sorte, qui agisse directement sur le contenu du code

    est-ce possible ???
    Comment faire ??

    Merci d’avance à qui pourra m’aider

    albert

  2. #2
    Membre éprouvé Avatar de Celeborn
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 133
    Par défaut
    Bonsoir,

    Tu peux pour cela dans ton écouteur juste avant ton appelle à la méthode lireFichier(), récupérer la valeur du JTextField et l'affecter à ta variable monFichier.

  3. #3
    Membre éprouvé Avatar de dr00w
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 116
    Par défaut
    Une façon simple :

    1) ajouter un JTextField pour le nom de fichier dans la classe en remplaçant cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String monFichier = "texte.txt";
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JTextField nomFichier = new JTextField("toto.txt", 30);
    2) ajouter le champ au panel en modifiant le constructeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ...
    add(boutonFermer, BorderLayout.SOUTH);
     add(nomFichier, BorderLayout.CENTER);
    
    3) modifier la méthode "LireFichier" en remplaçant la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RandomAccessFile raf = new RandomAccessFile(monFichier,  "r");
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RandomAccessFile raf = new RandomAccessFile(nomFichier.getText(),  "r");
    Bon j'ai pas testé tout ça mais ça devrait aller...

    Bonne chance !

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 15
    Par défaut je vais travailler sur cette piste
    merci dr00w,

    je vais essayer... si je n'y arrive pas je rappelle demain.

    en tous cas j'apprécie beaucoup ce forum, on se sent moins seul.

    au passage, salutations à bouye, je ne sais pas si ma réponse au message privé a été envoyé correctement.

    cordialement

    albert

  5. #5
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Surtout n'oublie pas de faire ta lecture de fichier en dehors de l'EDT au risque de voir ton interface graphique se figeait.
    plus d'informations ici : Threads et performance avec Swing


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 15
    Par défaut comment ajouter une zone d'édition active ?
    Bonsoir dr00w,forumiens et forumiennes,

    J’ai suivi tes instructions et remplacé les lignes… miracle, ça fonctionne !!


    Mais j’obtiens le même résultat qu’avec le code précédent : un Jframe et un bouton qui permet de lire un fichier .txt dont l’adresse est prédéfinie : il n’y a pas de zone d’édition.

    Je pensais que la ligne JTextField nomFichier = new JTextField("", 10);
    Permettait d’ajouter une une zone d'édition de texte comportant une seule ligne, dans laquelle j’aurais pu écrire Toto ou bzz, par exemple, pour ainsi modifier la variable en fonction du fichier .txt à lire


    Comment puis-je procéder pour obtenir cette zone d’édition (sous le bouton « charger un fichier »), permettant de modifier la variable dans le code ?

    J’ai essayé notamment d’ajouter une ligne : add(nomFichier); après JTextField nomFichier = new JTextField("toto.txt", 30); mais ça ne marche pas

    merci d'avance


    afrikha,

    j’ai lu le texte indiqué par ton lien je suis conscient qu’il faut que j’apprenne ces subtilités, mais pour le moment mon niveau ne me permet pas d’apprécier... (ce qui ne m'empèche pas de garder cette précision en mémoire)


    albert

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 15
    Par défaut modifier une variable dans le code avec JtextField
    Bonsoir Celeborn,
    Sympa de répondre aussi rapidement.

    Il faut donc que je modifie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    this.maFenetre = maFenetre;
        MyListener monEcouteur = new MyListener();
    mais,

    1/ récupérer la valeur du JtextField
    2/ l'affecter à la variable monFichier : pour moi c’est très théorique

    dans les cours d’initiation je n’ai pas encore eu l’occasion de procéder à cette démarche. Donc je suis un peu perdu

    Tu peux m’en dire plus, ou m’indiquer un tuto (si tu as le temps)


    albert

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

Discussions similaires

  1. changer la valeur d'une variable avec 2 bouton
    Par toutounesan_bg dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 03/08/2007, 10h51
  2. Récupérer une variable du code-behind
    Par DJuL- dans le forum ASP.NET
    Réponses: 9
    Dernier message: 24/07/2007, 18h38
  3. Réponses: 2
    Dernier message: 22/08/2006, 11h28
  4. valeur d'un champ text modifié par une variable en parametre
    Par klimero dans le forum Général JavaScript
    Réponses: 21
    Dernier message: 21/04/2006, 10h39
  5. Réponses: 3
    Dernier message: 14/03/2006, 14h43

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