Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1116 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Java] Applet, reseau et repaint() : probleme

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Java] Applet, reseau et repaint() : probleme

n°215352
Gonzoide
Les cochons... dans l'espâââce
Posté le 16-09-2002 à 23:24:31  profilanswer
 

Il se passe un truc bizarre avec une applet : dans une applet, on veut mettre le curseur a "sablier", envoyer une requete sur le reseau de maniere synchrone, et remettre le curseur normal une fois la requete revenue (tout ca dans le meme thread).
 
Or, il se trouve que dans certains cas (surtout : petite machine), le curseur n'a pas le temps de se mettre au sablier, la requete part et revient, et le curseur clignote un peu avant de rester definitivement sur la fleche.
 
Je sais que tout ce qui concerne le gui tourne en priorite basse, et que le lancement de la requete bouffe du CPU sur notre appli, mais la, ca nous semble un peu gros : meme pas qqs cycles pour mettre a jour un curseur, c'est zarbi. Est-ce que par hasard, dans le contexte Win NT + JDK 1.3.1 + Internet Explorer 5 + y'aurait pas un conflit de ressources quelconque (autre que CPU) qui pourrait expliquer ca ?

mood
Publicité
Posté le 16-09-2002 à 23:24:31  profilanswer
 

n°215358
gfive
Posté le 16-09-2002 à 23:49:37  profilanswer
 

T'es sûr que bêtement, tu travailles pas sur un réseau local, qui dépotte comme un âne, et que la requête va pas trop vite pour que tu voies le changement??

n°215363
phenixl
Posté le 16-09-2002 à 23:54:54  profilanswer
 

Gonzoide a écrit a écrit :

 
qui pourrait expliquer ca ?




 
Euh... Ta requete part, tu as la reponse avant que le curseur ne change et tout marche... il est ou le "probleme" ?
 
Ce que tu fais (vu que tu parles de synchrone) c'est :
 
si pression boutton alors  
envoi requete
curseur sablier
attente reponse
curseur fleche
is
 
Pour repondre a ta question effectivement si la priorite du thread du GUI est faible et si ton appli prend beaucoup de temps CPU et a une prioritee normale voir haute, l'update de la GUI risque de se faire a la fin de l'execution du couple envoi requete reception reponse...  
 
Alors seulement la GUI sera updatee d'ou le clignottement : le curseur change mais apres avoir recu la reponse donc il rechange a nouveau. Les "qqes cycles" sont bien la... C'est purement une histoire de gestion des threads par la VM.
 
Essaye evt de faire un update du GUI manuellement avant d'attendre la reponse.
 
Bye

n°215399
Gonzoide
Les cochons... dans l'espâââce
Posté le 17-09-2002 à 07:36:03  profilanswer
 

phenixl a écrit a écrit :

 
Euh... Ta requete part, tu as la reponse avant que le curseur ne change et tout marche... il est ou le "probleme" ?




En fait l'aller-retour de la requete prend un certain temps, durant lequel on aimerait bien avoir le sablier
 

phenixl a écrit a écrit :

 
si pression boutton alors  
envoi requete
curseur sablier
attente reponse
curseur fleche
is




 
En fait, on change le curseur avant d'envoyer le sablier, sinon c'est ca :)
 

phenixl a écrit a écrit :

 
Pour repondre a ta question effectivement si la priorite du thread du GUI est faible et si ton appli prend beaucoup de temps CPU et a une prioritee normale voir haute, l'update de la GUI risque de se faire a la fin de l'execution du couple envoi requete reception reponse...  




 
C'est ce que je pense, mais ca me semble un peu enorme que pendant tout ce temps le petit thread de repaint a meme pas un petit chouia de temps pour rafraichir le curseur ...
 

phenixl a écrit a écrit :

 
Essaye evt de faire un update du GUI manuellement avant d'attendre la reponse.




 
Chuis pas tres GUI ... je croyais qu'il y avait pas moyen d'obtenir explicitement un repaint(), juste en faire la demande. On peu le forcer ?
 

n°215412
gfive
Posté le 17-09-2002 à 08:55:36  profilanswer
 

Essaie de faire un repaint explicite, sinon...A moins que tu aies déjà essayé :  
 
tu appelles repaint() sur le composant sur lequel tu as changé le curseur...Mais je suis pas sûr que ça suffise : si le curseur n'est pas sur le composant à ce moment là, le curseur va peut être pas être raffraichit...

n°215541
Gonzoide
Les cochons... dans l'espâââce
Posté le 17-09-2002 à 11:55:04  profilanswer
 

Et en reforcant le repaint() sur toute l'applet ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Java] Applet, reseau et repaint() : probleme

 

Sujets relatifs
probleme d'include [youdontcare mon sauveur inside]probleme pour gerer le temps
formulaire d'upload + OVH = probleme ?[Java] Lire un double dans un fichier ecrit par C++ ?
JButton dans une Box : problème de dimensionsprogrammation jeu multiplayer sur internet en java
Après Netscape 4 c'est Opera qui me pose problème.Probleme d'écriture de requete en SQL :
problème avec variables chaines de caractèresProbleme de session sur free
Plus de sujets relatifs à : [Java] Applet, reseau et repaint() : probleme


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR