IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques en Java Discussion :

Lancer repaint() en synchrone


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre averti Avatar de Higestromm
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    516
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 516
    Points : 412
    Points
    412
    Par défaut Lancer repaint() en synchrone
    Bonjour,

    Je voudrais savoir si il y avais un moyen pour appeler la fonction
    repaint() en synchrone sans lance la fonction paintComponent(getGraphics));
    En fait je voudrais lancer un affichage, attendre que ca soit fini et passer au suivant...

    Quelqu'un a une solution ?
    J'aime pas les épinards... Mais alors pas du tout

  2. #2
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    bonjour,
    je ne comprends pas très bien ta problématique. Que veux-tu dire par
    appeler la fonction repaint() en synchrone sans lance la fonction paintComponent(getGraphics));
    Si tu veux attendre que l'affichage soit fini, et passer au suivant, tu peux utiliser un Timer qui fait des repaint() périodiquement.

  3. #3
    Membre averti Avatar de Higestromm
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    516
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 516
    Points : 412
    Points
    412
    Par défaut
    En fait j'ai une fonction qui charge des images et les affiches à l'écran au fur et à mesure... Donc entre chaque image je lance un repaint().
    Le probleme de repaint() c'est qu'il lance un appelle a paint de maniere asynchrone.

    Du coup, il se passe que rien ne se passe pendant le chargement et qu'il affiche le résultat une fois que tout est chargé. Certainement du à une accumulation de demande de repaint dans la liste des évenements graphiques.

    J'aimerais donc lancer un repaint(), et une fois qu'il à fini, continuer le chargement...

    PS : Si jamais j'apelle directement paintComponent(getGraphics()) ca marche mais le double buffering de Swing ne marche pas lui... et j'en ai besoin.
    J'aime pas les épinards... Mais alors pas du tout

  4. #4
    Membre averti Avatar de Higestromm
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    516
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 516
    Points : 412
    Points
    412
    Par défaut
    J'ai beau ajouter des Sleep() dans tous les sens, rien n'y fait ! Le rafraichissement ne se fait pas avant la fin de ma fonction... Je ne comprend pas bien le problème en fait...
    J'aime pas les épinards... Mais alors pas du tout

  5. #5
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    si tu veux je regarderais dans killer game programming in java ce soir ou demain soir si tu veux. il y a un truc pour remplacer le paint() par une methode dont on maitrise parfaitement le timing (contrairement a paint() qui est géré par la jvm). la de memoire je ne me souviens plus

  6. #6
    Membre averti Avatar de Higestromm
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    516
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 516
    Points : 412
    Points
    412
    Par défaut
    tant que ca ne remet pas en cause tout le projet je ne suis pas contre
    J'aime pas les épinards... Mais alors pas du tout

  7. #7
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Je ne vois pas ton probleme, pour avoir fait des animations dans des composants j'ai du mal a comprendre quel probleme tu rencontres.
    Romain Guy
    Android - Mon livre - Mon blog

  8. #8
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    Citation Envoyé par Gfx
    Je ne vois pas ton probleme, pour avoir fait des animations dans des composants j'ai du mal a comprendre quel probleme tu rencontres.
    je pense qu'il veut gerer precisement le fps en fait. et avec paint c'est pas possible car on ne maitrise pas son appel. faut que je retrouve ca dans mon bouquin ce soir

  9. #9
    Membre averti Avatar de Higestromm
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    516
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 516
    Points : 412
    Points
    412
    Par défaut
    Bah en fait non, je ne cherche pas a gérer mes FPS (du moin pas dans ce logiciel la )

    je vais expliquer ma fonction d'une maniere un peu algorithmique parce que j'ai du mal à expliquer mon probleme... je voudrais faire un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    TANT QUE (Charger des images de maniere asynchrone)
    FAIRE
        Attendre la fin du chargement d'une image
        Afficher toutes les images déja chargées dans un tableau
    FIN TANT QUE
    Visuellement je devrais avoir un tableau qui se remplis au fur et a mesur du temps avec des images... Au lieu de ca rien ne se passe jusqu'a ce que tout soit chargé.

    Je vais regarder de plus pres mes synchronisation car je pense que le probleme doit venire de la... comme paint est synchroniser (enfin je crois) peut etre que si mon chargement l'es aussi ca fout le bordel

    Merci de vos réponses
    J'aime pas les épinards... Mais alors pas du tout

  10. #10
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Ou effectue-tu le chargement ? Si c'est dans l'EDT il est certain que tu auras des ennuis. J'avais fait une demo pour JavaOne qui fait quelque chose de fort semblable : l'application commence a charger les images dans une liste et lorsqu'un certain nombre (en l'occurence 10) d'images est charge, l'affichage debute.
    Romain Guy
    Android - Mon livre - Mon blog

  11. #11
    Membre averti Avatar de Higestromm
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    516
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 516
    Points : 412
    Points
    412
    Par défaut
    oui j'execute ce chargement dans l'EDT... mais je ne voit pas comment faire autrement... peut etre en lancant une thread qui execute mon chargement ???
    J'aime pas les épinards... Mais alors pas du tout

  12. #12
    Membre averti Avatar de Higestromm
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    516
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 516
    Points : 412
    Points
    412
    Par défaut
    En faisant ca ca marche nikel ! Merci à tous pour votre aide !!!
    J'aime pas les épinards... Mais alors pas du tout

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB6] Lancer un service, par exemple Sql Server
    Par fea dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 16/10/2002, 14h07
  2. [VBA-E] [Excel] Lancer une macro à une heure donnée
    Par Lysis dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/10/2002, 12h15
  3. [Kylix] probleme pour lancer le shell
    Par miky dans le forum EDI
    Réponses: 5
    Dernier message: 13/08/2002, 09h39
  4. Réponses: 8
    Dernier message: 05/06/2002, 11h55
  5. Réponses: 6
    Dernier message: 25/03/2002, 21h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo