Bon c'est super chaud à expliquer donc je vais essayer d'être le plus clair possible.
Le probléme est lié à une transition entre deux phases de mon programme.
Phase 1 : affichage d'un JFileChooser.
Phase 2 : affichage d'un panel contenu dans un JscrollPane. Ce panel contient entre autre plusieurs JTextArea(non editable).(la JScrollBar verticale doit commencer tout en haut).
Lors de la phase 1, lorsque la personne clique sur un fichier du navigateur tout ce passe bien.
Par contre lorsque la personne rentre le nom du fichier au clavier(c'est l'accès clavier qui est important), dans ce cas le prog considère qu'il y a eu une saisie clavier et lors de la phase 2 , la JScrollBar commence en bas.
Après avoir fait beaucoup de tests et passé beaucoup de temps sur ce problème, je suis arrivée au conclusion suivante :
-le problème n'a jamais lieu lorsque on clique sur un fichier(ex:toto.xsl), puis on clique sur OK dans la phase 1.(ni lorsque on double clique sur le fichier)
-le problème a toujours lieu lorsque le nom est saisi par clavier sur la phase 1.
Si lors de la saisie clavier, on inscrit un nom de fichier existant(ex: le même toto.xsl), alors le problème apparait aussi.
-le problème n'a pas lieu apparemment lorsque il n'y a pas de JTextArea dans ma JScrollPane dans la phase 2(malheureusement ils me sont utiles)
-il me semble qu'il y a une sorte de BufferedWritter par défaut qui veuille écrire dans le dernier JTextArea de mon JScrollPane de la phase 2 et du coup ma JScrollBar se focalise dessus(je ne vois pas d'autre explication).
-Malgrès des setValue, des update, des repaint... dans tous les sens, ça ne change rien.
Est-il donc possible de récupérer le "buffer" ou équivalent du JFileChooser et de faire un flush?
Voyez-vous une autre solution?
Si quelqu'un a compris, peut-il m'aider?
Message édité par le_moustiq le 28-07-2005 à 09:38:53