[Java] maj du défilement d'un jtextarea utilisé par 2 classes
maj du défilement d'un jtextarea utilisé par 2 classes [Java] - Java - Programmation
MarshPosté le 16-12-2005 à 21:09:46
salut
j'ai une appli constituée de plusieurs classes. parmi celle-ci une classe IHM, qui a (entre autres) un JTextArea qui est mis à jour par un autre thread lancé à partir d'un bouton de l'IHM (l'idée est de faire faire le traitement tout en laissant la possibilité via l'IHM de suspendre/reprendre/stopper le traitement) j'arrive bien à mettre à jour le contenu du JTextArea de l'IHM à partir du thread concurrent : j'ai passé la référence de l'objet JTextArea en paramètre du constructeur du processus concurrent, ainsi tous les .append() ralisés s'affichent bien dans le JTextArea. tout ça marche sans problème: seul souci, le JTextArea, lorsqu'il est mis à jour par le thread ne défile pas automatiquement. or cela aurait pu être pratique de suivre l'évolution du traitement réalisé par le thread sans avoir à bouger l'ascenseur du JTextArea (les messages qui s'affichent dans le JTextArea représentent un log du traitement) je précise que l'attibut AutoSroll de JTextArea est bien positionné sur true, et j'ai même fait le test de rajouter dans l'IHM un bouton qui rajoute un texte qcque dans le JTextArea. avec le thread concurrent lancé, lorsque je clique sur le bouton le JTextArea défile tout-à-fait normalement, donc ca devrait aussi défiler lorsque le thread met à jour ce JTextArea (enfin, je suppose)
qqun saurait m'aider ?
merci d'avance
edit: précision (qui peut avoir son importance), le JTextArea est inséré dans un JScrollPane... mhh je vais explorer cette voix-là
je viens de faire un nouveau essai-bidouillage: un timer qui met à jour le JTextArea est lancé 5 secondes après avoir lancé le traitement. là aussi j'ai passé la référence du JTextArea au time. résultat identique, le contenu est mis à jour mais pas le défilement. :\
Marsh Posté le 16-12-2005 à 21:09:46
salut
j'ai une appli constituée de plusieurs classes.
parmi celle-ci une classe IHM, qui a (entre autres) un JTextArea qui est mis à jour par un autre thread lancé à partir d'un bouton de l'IHM (l'idée est de faire faire le traitement tout en laissant la possibilité via l'IHM de suspendre/reprendre/stopper le traitement)
j'arrive bien à mettre à jour le contenu du JTextArea de l'IHM à partir du thread concurrent : j'ai passé la référence de l'objet JTextArea en paramètre du constructeur du processus concurrent, ainsi tous les .append() ralisés s'affichent bien dans le JTextArea.
tout ça marche sans problème: seul souci, le JTextArea, lorsqu'il est mis à jour par le thread ne défile pas automatiquement. or cela aurait pu être pratique de suivre l'évolution du traitement réalisé par le thread sans avoir à bouger l'ascenseur du JTextArea (les messages qui s'affichent dans le JTextArea représentent un log du traitement)
je précise que l'attibut AutoSroll de JTextArea est bien positionné sur true, et j'ai même fait le test de rajouter dans l'IHM un bouton qui rajoute un texte qcque dans le JTextArea. avec le thread concurrent lancé, lorsque je clique sur le bouton le JTextArea défile tout-à-fait normalement, donc ca devrait aussi défiler lorsque le thread met à jour ce JTextArea (enfin, je suppose)
qqun saurait m'aider ?
merci d'avance
edit: précision (qui peut avoir son importance), le JTextArea est inséré dans un JScrollPane... mhh je vais explorer cette voix-là
je viens de faire un nouveau essai-bidouillage: un timer qui met à jour le JTextArea est lancé 5 secondes après avoir lancé le traitement. là aussi j'ai passé la référence du JTextArea au time. résultat identique, le contenu est mis à jour mais pas le défilement. :\
Message édité par trevor le 16-12-2005 à 21:32:15
---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net