KioskeaKioskeaCommentCaMarcheInscrivez-vous, c'est gratuit !
Samedi 17 mai 2008 - 07:13:23

Scintillement avec une JScrollPane

Rechercher : dans
Scintillement avec une JScrollPane
par NoHaR
 Fil de Discussions
Statut : Non résolu
vendredi 14 décembre 2007 à 12:13:52
Bonjour,
J'ai un petit soucis avec Java - Swing, qui m'a fait réfléchir pendant un moment sans trouver de solution :

Voilà j'essaye de développer un petit client de chat, qui fonctionne avec le protocole Oscar (un espèce de d'AIM express, ou de Pidgin en Java si vous voulez) mais mon problème ne concerne pas le moteur mais plutôt l'interface graphique.

Pour ma fenêtre de chat, j'utilise, classiquement, un JEditorPane calé dans un JScollPane (jusqu'ici pas de problème, le html s'affiche très bien), mais le principal soucis est lors de la réception d'un message :

-> Le message est recu, remis en forme en html
-> Le message formatté est ensuite ajouté au texte du JEditorPane
-> On ferme le document html du JEditorPane en rajoutant les balises </body></html>
-> On met le JEditorPane à jour

-> Pour n'afficher que le dernier message (garder la scrollbar tout en bas), on sélectionne le dernier caractère du texte gràce à la petite ligne suivante :

conversation.select(conversation.getText().length()-1, conversation.getText().length());

où "conversation" est mon JEditorPane.


En soi, ça marche mais à chaque fois que je recois un message, ça "scintille" : lorsque le JEditorPane est mis à jour, c'est le haut du texte que l'on voit, donc la JScrollBar est "réinitialisée" en quelque sorte, donc on se retrouve à voir le début de la conversation pendant quelques centièmes avant de voir ce qu'on devrait normalement voir : la fin !

C'est assez désagréable comme effet, et j'aimerais savoir si quelqun avait une idée pour éviter ça :
-> en gros, garder la scrollbar scrotchée en bas pendant que ça réinitialise.
-> Une autre solution acceptable serait que lorsque la conversation est actualisée on voie le point ou c'en était "avant" (l'avant derniere ligne) au lieu du début, avant de scroller d'un cran vers le bas....

please... help -_-


J'ai déjà essayé de mettre mon JEditorPane en doubleBuffer, le JScrollPane aussi, rien n'y fait
Configuration: Linux
Firefox 3.0
Répondre à NoHaR  Signaler ce message aux modérateurs
Discussions pertinentes trouvées dans le forum
17/05 14h43java scrollbar ou JScrollbar ou jscrollpane..Programmation23/04 22h042
22/03 11h13comment intégrer des images scintillantesWindows22/03 11h130
16/03 10h46taches scintillantes sur écran ordi portableMatériel/Hardware16/03 14h211
15/03 10h31Scintillemnt sur écran fullhd avec un bluerayVidéo numérique15/03 10h310
Plus de discussions sur « Scintillement avec une JScrollPane » Discussion en cours Discussion fermée Problème résolu
Répondre
Titre du message :
Votre pseudo:
Votre email :
Message: 
  •  
  •  
Options: Recevoir les réponses par mail.
 

Aide