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 :

Problème d'actualisation du JTextArea


Sujet :

Composants Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Mars 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Problème d'actualisation du JTextArea
    Bonjour,

    J'essaye de faire une petite console, mais j'ai un problème avec l'actualisation du JTextArea mais pourtant j'ai tout essayer (setText, revalidate, append...) mais sa change rien.

    J'avais essayer de le JTextPane mais toujours le même problème

    Pourtant mon code est correct

    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    package modules;
     
    import modules.Command;
     
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.GridLayout;
    import java.awt.Label;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    import javax.swing.BorderFactory;
    import javax.swing.BoxLayout;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
    import javax.swing.JTextField;
    import javax.swing.SwingConstants;
     
    public class Console extends JFrame{
     
     private JPanel container = new JPanel();
     private JButton entrer = new JButton("Entrer");
     private JTextField jtf = new JTextField("");
     
     protected JTextArea ecran_info = new JTextArea();
     
     public void fenetre() {
         this.setTitle("Console");
         this.setSize(400, 400);
         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         this.setLocationRelativeTo(null);
     
         container.setBackground(Color.white);
         container.setLayout(new BorderLayout());
     
         ecran_info.setEditable(false);
         ecran_info.setText("Bienvenue dans la console");
     
     
         JPanel sud = new JPanel();
         sud.setLayout(new BoxLayout(sud, BoxLayout.LINE_AXIS));
     
         jtf.setForeground(Color.BLACK);
         jtf.setPreferredSize( new Dimension(300, 30 ) );
     
         sud.add(jtf);
     
         entrer.addActionListener(new Bouton());
     
         sud.add(entrer);
     
         container.add(ecran_info, BorderLayout.CENTER);
         container.add(sud, BorderLayout.SOUTH);
     
         this.setContentPane(container);
         this.setVisible(true);  
     }
     
     public void ajouter_texte(String message) {
      System.out.println("La variable 'message' : "+message);
      ecran_info.append(message);
     }
     
     class Bouton implements ActionListener {
     
      public void actionPerformed(ActionEvent arg0){
       new Command(jtf.getText());
      }
     }
     
    }
    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
    package modules;
     
    import modules.Console;
     
    public class Command {
     
     Console console = new Console();
     
     private String command[] = {
       "message"
     };
     
     public Command(String text) {
     
      if(text.equals(command[0])) {
       System.out.println("Teste de la commande 'message'");
       console.ajouter_texte(text);
      }
      else
      {
       System.out.println("Cette command n'existe pas");
      }
     }
     
     
    }
    Merci d'avance

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 075
    Points : 7 981
    Points
    7 981
    Par défaut
    Non ton code n'est pas correcte je pense.

    Console lors de l'appui sur son bouton te crée une instance de commande, qui elle même se crée une nouvelle instance de console. Y'a comme qui dirait un truc pas correcte

    Supprime la variable console dans la classe Commande. Modifie le constructeur de commande pour lui passer la console et ça fonctionnera.

    Par contre je doute que ce soit la bonne manière de coder cela.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Candidat au Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Mars 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Au début, j'avais des problèmes au niveau de l'instance de "Console" et "Command" donc j'ai fais ceci, je fais essayé de trouvé une autre façon pour renvoyer la variable a "Console"

    Tu penses que le problème d'actualisation vient de là ?

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Greenlio Voir le message
    Au début, j'avais des problèmes au niveau de l'instance de "Console" et "Command" donc j'ai fais ceci, je fais essayé de trouvé une autre façon pour renvoyer la variable a "Console"

    Tu penses que le problème d'actualisation vient de là ?
    Fais ce qu'a dit @Wax78. Ce n'est pas un problème d'actualisation/ A chaque fois que tu cliques sur ton bouton, ça créé une nouvelle instance de Command, donc une nouvelle instance de Console : l'instance de Command écrit bien dans cette Console, mais pas celle qui est affichée (le fait de faire new Console() créé une nouvelle instance de Console qui n'est affichée nulle part, et qui n'est connue que de la Command).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Candidat au Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Mars 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    J'ai résolu mon problème, c'était bien un problème au niveau de l'instance

    Je vous donne l'endroit du code ou j'ai changé :

    J'ai enlevé la classe Bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        @Override
         public void actionPerformed(ActionEvent arg0) {
              new Command(jtf.getText(), this);
         }
    J'ai implanté ActionListener a la classe Console :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class Console extends JFrame implements ActionListener
    Et j'ai ajouté un argument a Command :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public Command(String texte, Console cons)
    Merci

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/04/2006, 09h07
  2. Problème d'actualisation de stats
    Par L'Oracle dans le forum Access
    Réponses: 7
    Dernier message: 10/04/2006, 10h09
  3. problème d'actualisation sur formulaire access
    Par abhleza dans le forum Access
    Réponses: 5
    Dernier message: 31/03/2006, 08h07
  4. Réponses: 1
    Dernier message: 08/03/2006, 19h30
  5. [Tableaux] Problème d'actualisation affichage
    Par miram dans le forum Langage
    Réponses: 7
    Dernier message: 09/02/2006, 15h14

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