Probleme affichage dans un JTextArea
Fermé
rela33
Messages postés
4
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
8 mai 2008
-
7 mai 2008 à 17:08
rela33 - 14 mai 2008 à 14:26
rela33 - 14 mai 2008 à 14:26
A voir également:
- Probleme affichage dans un JTextArea
- Affichage double ecran - Guide
- Problème affichage fenêtre windows 10 - Guide
- Windows 11 affichage classique - Guide
- Comment agrandir l'affichage de l'écran - Guide
- Problème affichage le bon coin ✓ - Forum Virus
8 réponses
arth
Messages postés
9374
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 292
7 mai 2008 à 17:10
7 mai 2008 à 17:10
Je comprends pas c'est quoi ce MoneticMessageDisplay ? ça sert à quoi?
Bonjour,
1/ta méthode getMessage() de MoneticMessageDisplay retourne bien un String?
2/ Ca n'a rien à voir, mais pourquoi ta méthode display retourne 0? A quoi te sert-il?
Merci
1/ta méthode getMessage() de MoneticMessageDisplay retourne bien un String?
2/ Ca n'a rien à voir, mais pourquoi ta méthode display retourne 0? A quoi te sert-il?
Merci
Déja merci de me réponde jsuis limite desespérée là j'en peux plus!
<quote>
1/ta méthode getMessage() de MoneticMessageDisplay retourne bien un String?
</quote
je pense que tu parle de message.getDipslay()? Si c'est ca oui elle retourne bien un string pour être plus préciser je reçois parfaitement les messages sur la console mais je n'arrive pas à les afficher dans ma TextArea
<quote>
2/ Ca n'a rien à voir, mais pourquoi ta méthode display retourne 0? A quoi te sert-il?
</quote>
Je me posée la même question! Et mon chef de stage n'a pas pu me répondre mais je dois laisser comme ça. En fait moi j'ai du implémenté l'interface et danc cette interface cette fonction était déclaré comme cela donc j'ai laissé.
De plus je ne peux pas utiliser cette fonction par moi même car le paramètre message est trouvé grâve à plein d'autre fonctions!!
En fait quand j'appuis sur le bouton valider je lance mon initilisation comme cela :
<quote>
1/ta méthode getMessage() de MoneticMessageDisplay retourne bien un String?
</quote
je pense que tu parle de message.getDipslay()? Si c'est ca oui elle retourne bien un string pour être plus préciser je reçois parfaitement les messages sur la console mais je n'arrive pas à les afficher dans ma TextArea
<quote>
2/ Ca n'a rien à voir, mais pourquoi ta méthode display retourne 0? A quoi te sert-il?
</quote>
Je me posée la même question! Et mon chef de stage n'a pas pu me répondre mais je dois laisser comme ça. En fait moi j'ai du implémenté l'interface et danc cette interface cette fonction était déclaré comme cela donc j'ai laissé.
De plus je ne peux pas utiliser cette fonction par moi même car le paramètre message est trouvé grâve à plein d'autre fonctions!!
En fait quand j'appuis sur le bouton valider je lance mon initilisation comme cela :
public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("Quitter")) { System.exit(0); } else{ nom = VueAdmin.getNom().getText(); resulVerifNom = VueAdmin.VerifNom(VueAdmin.getNom()); resulVerifTpv = VueAdmin.VerifTPVnb(VueAdmin.getTPV()); //si les données rentrées sont correctes je lance l'initialisation if (resulVerifNom && resulVerifTpv) { lancerinitialisation() } }
rela33
Messages postés
4
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
8 mai 2008
>
rela33
8 mai 2008 à 11:06
8 mai 2008 à 11:06
Désolé j'ai appuyé sur une mauvaise touche et sa a envoyé le message jai pas pu le relire y a plein de fautes sorry!
rela33
Messages postés
4
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
8 mai 2008
8 mai 2008 à 11:12
8 mai 2008 à 11:12
Quelques info suppl
Lancerinitialisation() c'est plusieurs fonctions que je n'ai pas programmé moi même ça vient de l'entreprise donc je ne les mets pas ici.
De plus je pense à utiliser un Thread et ensuite EventQueue.InvokeLater (j'ai vu ça dans un forum)
Mais j'ai beaucoup de mal à voir comment l'implémenter dans mon code..
En effet le premier problème c'est que si je modifie mon textArea dans le controleur dans la methode ActionPerformed ça marche (il n'y a pas la notion d'affichage au fur et à mesure c 'est juste un TextArea.setText("kikou"))
Mais si j'essaye de le faire avec la classe Message que je dois utiliser, la modification n'est pas prise graphiquement (parce que sur la console les modifs ont bien été fait)
Lancerinitialisation() c'est plusieurs fonctions que je n'ai pas programmé moi même ça vient de l'entreprise donc je ne les mets pas ici.
De plus je pense à utiliser un Thread et ensuite EventQueue.InvokeLater (j'ai vu ça dans un forum)
Mais j'ai beaucoup de mal à voir comment l'implémenter dans mon code..
En effet le premier problème c'est que si je modifie mon textArea dans le controleur dans la methode ActionPerformed ça marche (il n'y a pas la notion d'affichage au fur et à mesure c 'est juste un TextArea.setText("kikou"))
Mais si j'essaye de le faire avec la classe Message que je dois utiliser, la modification n'est pas prise graphiquement (parce que sur la console les modifs ont bien été fait)
Resalut,
Ok pour tes explications. Si ton message est bien affiché en console, c'est qu'effectivement c'est ok sur ce point là.
As-tu essayé la méthode repaint() dans ta classe d'affichage (elle doit étendre JFrame non?) ?
Ok pour tes explications. Si ton message est bien affiché en console, c'est qu'effectivement c'est ok sur ce point là.
As-tu essayé la méthode repaint() dans ta classe d'affichage (elle doit étendre JFrame non?) ?
Coucou merci encore pour ta réponse.
Sans vouloir raconter ma vie, je suis en stage sans mon chef de projet, sans celui qui s'occupe de moi sur ce projet et sans un autre qui m'a déjà aidé en Java.
Oui je demande votre pitié lol .
Pour ce qui est de repaint() je l'ai essayé un peu partout...
Dans la classe Message ds la méthode display(..) à chaque fois qu'on a un message on rafrachit comme tu me l'as proposé si j'ai bien compris. J'ai essayé sur le TextArea et sur la vue mais rien ni fait... J'ai essayé sur le controleur à mon avis c'est faut mais au point j'en étais j'essayais vraiment partout! J'ai même essayé un validate aussi ou un update() sans succès peut être que je ne les place pas au bon endroit aussi je ne sais pas trop...
Ce qui est bizzare ce que ok l'affichage au fur et à mesure ne marche pas, je veux bien. Mais ça devrait au moins m'afficher tous les messages à la fin alors?
Sans vouloir raconter ma vie, je suis en stage sans mon chef de projet, sans celui qui s'occupe de moi sur ce projet et sans un autre qui m'a déjà aidé en Java.
Oui je demande votre pitié lol .
Pour ce qui est de repaint() je l'ai essayé un peu partout...
Dans la classe Message ds la méthode display(..) à chaque fois qu'on a un message on rafrachit comme tu me l'as proposé si j'ai bien compris. J'ai essayé sur le TextArea et sur la vue mais rien ni fait... J'ai essayé sur le controleur à mon avis c'est faut mais au point j'en étais j'essayais vraiment partout! J'ai même essayé un validate aussi ou un update() sans succès peut être que je ne les place pas au bon endroit aussi je ne sais pas trop...
Ce qui est bizzare ce que ok l'affichage au fur et à mesure ne marche pas, je veux bien. Mais ça devrait au moins m'afficher tous les messages à la fin alors?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
arth
Messages postés
9374
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 292
9 mai 2008 à 12:09
9 mai 2008 à 12:09
Essaie plutôt de faire :
reponse.setText(response.getText()+"\n"+message.getDisplay());
Parce qu'en fait je viens de voir que tu ne reprends pas le contenu du TextArea pour le réafficher à nouveau, tu ne fais que le remplir avec une nouvelle phrase sans réécrire le contenu déjà présent d'où ce que je te propose.
C'est à dire remplir le contenu du textarea avec ce qui était déjà dedans avant, d'où mon response.getText() qui récupère le contenu du textarea, puis de passer à la ligne avec un \n, puis de rajouter à cela ton arrivée de message.
Essaie et dis moi si ça marche.
reponse.setText(response.getText()+"\n"+message.getDisplay());
Parce qu'en fait je viens de voir que tu ne reprends pas le contenu du TextArea pour le réafficher à nouveau, tu ne fais que le remplir avec une nouvelle phrase sans réécrire le contenu déjà présent d'où ce que je te propose.
C'est à dire remplir le contenu du textarea avec ce qui était déjà dedans avant, d'où mon response.getText() qui récupère le contenu du textarea, puis de passer à la ligne avec un \n, puis de rajouter à cela ton arrivée de message.
Essaie et dis moi si ça marche.
J'ai essayé et donc je reprend bien tous les messages sur la console mais toujours rien niveau graphique
console:
"reponse :" c'est pour m'indiquer que c'est l'affichage de la TextArea
Et au niveau graphique j'ai que bonjour.
Pour ce que tu m'as dit sinon , je pense faire reponse.append au lieu de setText aprés j'aurais pas le \n mais c'est faisable aussi de toute façon ça revient à la même chose.
Je pense que pour l'instant le véritable problème c'est que quand je passe par la classe Message pour modifier graphiquement ça ne fait rient alors que quand je passe par le controleur (le bouton valider) je n'ai pas de souci...
Mais je ne vois pas du tout pourquoi...
console:
reponse :bonjour C3 5.2 - 3.00 21/12/07 A03E Initialisation Admin en cours... Initialisation Admin Terminee Initialisation Cheque en cours... Initialisation Cheque Terminee Initialisation Amex en cours... Initialisation Amex Terminee CHARGEMENT LECTEUR EN COURS CHARGEMENT LECTEUR TERMINE Initialisation Amex Terminee Initialisation Aurore en cours... Initialisation Aurore Terminee Initialisation Sofinco en cours... Initialisation Sofinco Terminee Initialisation EMV en cours... Initialisation EMV Terminee CHARGEMENT LECTEUR EN COURS CHARGEMENT LECTEUR TERMINE Initialisation EMV Terminee
"reponse :" c'est pour m'indiquer que c'est l'affichage de la TextArea
Et au niveau graphique j'ai que bonjour.
Pour ce que tu m'as dit sinon , je pense faire reponse.append au lieu de setText aprés j'aurais pas le \n mais c'est faisable aussi de toute façon ça revient à la même chose.
Je pense que pour l'instant le véritable problème c'est que quand je passe par la classe Message pour modifier graphiquement ça ne fait rient alors que quand je passe par le controleur (le bouton valider) je n'ai pas de souci...
Mais je ne vois pas du tout pourquoi...
arth
Messages postés
9374
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 292
9 mai 2008 à 13:44
9 mai 2008 à 13:44
Je comprends pas ta console t'affiche ce qui sort dans ta classe Message ou bien l'affichage console provient d'une autre classe?
Parce que ayant déjà fait des JTextArea je n'ai jamais eu de problème comme cela.
Ce que je crois est que ton constructeur est bien initialisé à l'appel de la classe, mais ensuite je crois que ton objet Message n'est plus utilisé, parce que sinon si des messages étaient injectés ils apparaîtraient hors ce n'est pas le cas dans ton jtextarea.
Tu es sûr que les messages sont bien envoyés au niveau graphique avec la méthode Display ?
Moi je serais toi je passerais en mode full debug pour voir où ca cloche, car là sinon c'est pas facile de trouver.
Parce que ayant déjà fait des JTextArea je n'ai jamais eu de problème comme cela.
Ce que je crois est que ton constructeur est bien initialisé à l'appel de la classe, mais ensuite je crois que ton objet Message n'est plus utilisé, parce que sinon si des messages étaient injectés ils apparaîtraient hors ce n'est pas le cas dans ton jtextarea.
Tu es sûr que les messages sont bien envoyés au niveau graphique avec la méthode Display ?
Moi je serais toi je passerais en mode full debug pour voir où ca cloche, car là sinon c'est pas facile de trouver.
Elle m'affiche le contenu du TextArea , ici je le regarde dans la classe message avec System.out.println(reponse.getMess());
Je viens de faire la même chose mais sur la classe du controleur et à la fin de l'initialisation j'obtien le résultat du contenu du TextArea et j'ai bien tous les messages.
Que veux tu dire par "les messages sont bien envoyés au niveau graphique?" C'est surement là méthode que je cherche. A part faire un setText(...) je ne sais pas quoi faire d'autre pour l'envoyer au niveau graphique.
Je viens de faire la même chose mais sur la classe du controleur et à la fin de l'initialisation j'obtien le résultat du contenu du TextArea et j'ai bien tous les messages.
Que veux tu dire par "les messages sont bien envoyés au niveau graphique?" C'est surement là méthode que je cherche. A part faire un setText(...) je ne sais pas quoi faire d'autre pour l'envoyer au niveau graphique.
Bonjour,
juste une petite remarque, pourquoi mettez vous votre JTextArea en lecture seule?
CF:
Voici ce que la javadoc dit:
setEditable
public void setEditable(boolean b)
Sets the specified boolean to indicate whether or not this TextComponent should be editable. A PropertyChange event ("editable") is fired when the state is changed.
Parameters:
b - the boolean to be set
Je pense que votre problème viens de là. A moins que cette propriété ne bloque l'écriture que dans le GUI. Et non pas par programme. Bien à vous.
juste une petite remarque, pourquoi mettez vous votre JTextArea en lecture seule?
CF:
message.setEditable(false);
Voici ce que la javadoc dit:
setEditable
public void setEditable(boolean b)
Sets the specified boolean to indicate whether or not this TextComponent should be editable. A PropertyChange event ("editable") is fired when the state is changed.
Parameters:
b - the boolean to be set
Je pense que votre problème viens de là. A moins que cette propriété ne bloque l'écriture que dans le GUI. Et non pas par programme. Bien à vous.
Oui c'est pour éviter que l'utilisateur ne modifie les messages mais j'ai résolu un probleme!!!
C'est bon les messages s'affichent!! vous ne pouviez pas m'aider c'était dans une fonction que je n'ai pas mise ici.
En fait je faisais dans une fonction : lafonction(new Message())
Hors dans new message je créé une TextArea donc j'avais toujours cette TextArea affiché avec que le bonjour, je réinitialisait à chaque fois en fait!!!
Bref j'ai fait mon TextArea plus haut et maintenant c'est bon.
Now le véritable problème!!!!!
Comment afficher les messages au fur et à mesure au lieu que tout arrive à la fin?
(Je vais réessayer tout ce que j'ai déjà fait parce que maintenant peut être que ça marchera ^^)
Si jamais vous avez une idée je suis tout ouïe!!!
C'est bon les messages s'affichent!! vous ne pouviez pas m'aider c'était dans une fonction que je n'ai pas mise ici.
En fait je faisais dans une fonction : lafonction(new Message())
Hors dans new message je créé une TextArea donc j'avais toujours cette TextArea affiché avec que le bonjour, je réinitialisait à chaque fois en fait!!!
Bref j'ai fait mon TextArea plus haut et maintenant c'est bon.
Now le véritable problème!!!!!
Comment afficher les messages au fur et à mesure au lieu que tout arrive à la fin?
(Je vais réessayer tout ce que j'ai déjà fait parce que maintenant peut être que ça marchera ^^)
Si jamais vous avez une idée je suis tout ouïe!!!
arth
Messages postés
9374
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 292
14 mai 2008 à 12:18
14 mai 2008 à 12:18
SI c'est l'API qui envoie le résultat, alors c'est dans l'API qu'il faut modifier l'envoie des messages d'initisalisation.
7 mai 2008 à 17:16
Monetic message Display est une classe qui me permet de recevoir des affichages d'un API, je dois lancer l'initialisation et recevoir via mon textarea le résultat de cette initialisation et il y a donc plusieurs messages qui doivent apparaitrent au fur et a mesure...
J'espère avoir été plus claire.