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

Applets Java Discussion :

Animation sous Java


Sujet :

Applets Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 46
    Points : 34
    Points
    34
    Par défaut Animation sous Java
    Bonjour,

    Pourriez-vous me dire comment faire une animation dans une applet Java ?
    En effet, si par exemple, il y a une image dependant d'un indice "i" et qu'on fait une boucle faisant varier "i" dans la methode "main" avec un "repaint" du paneau a chaque tour de la boucle, l'applet affiche uniquement le resultat final c'est a dire l'image correspondant au "i" final. La seule methode que j'ai trouve consiste a faire un "repaint" du paneau a chaque evenement de frappe d'une touche au clavier. A ce moment, a chaque frappe, l'image evolue. Mais ce n'est pas tres satisfaisant.
    Auriez-vous une solution ?
    Merci d'avance.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 21
    Points : 25
    Points
    25
    Par défaut
    tu veux faire une animation automatique ou manuel ( attente d'un evenement clavier comme tu as fait ?)
    il me semble que t'as pas trop le choix a part le repaint, apres tu peux lancer un thread qui se rafraichit toutes les x secondes.

    une idée comme ça avant la semaine qui commence ^^

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 46
    Points : 34
    Points
    34
    Par défaut
    Ah d'accord. Merci. Ce que je veux faire c'est faire evoluer l'image toutes les secondes. Donc je vais me renseigner sur les threads.

  4. #4
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Euh, pour des animations mieut vaut passer par un Timer: javax.swing.Timer est la classe que tu cherches...
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 46
    Points : 34
    Points
    34
    Par défaut
    OK, merci.
    Quel est le nom de l'evenement associe au timer ?

  6. #6
    Membre actif Avatar de fumiste972
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Février 2003
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Février 2003
    Messages : 228
    Points : 291
    Points
    291
    Par défaut
    L'evenement c'est l'action que tu vas realiser apres le temps ecoule.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int delay = 1000; //milliseconds
      ActionListener taskPerformer = new ActionListener() {
          public void actionPerformed(ActionEvent evt) {
              //...Perform a task...
          }
      };
      new Timer(delay, taskPerformer).start();
    "L'ignorance, c'est la béatitude, ce qui explique peut-être pourquoi tout le monde sourit"
    Pensez au tag , ca évite de se galérer pour rien.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 46
    Points : 34
    Points
    34
    Par défaut
    D'accord, merci.
    Et si je reprends l'exemple initial d'une boucle faisant varier "i" avec une image dependant de "i", et que le calcul de l'image puisse durer longtemps, comment faire ?

  8. #8
    Membre actif Avatar de fumiste972
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Février 2003
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Février 2003
    Messages : 228
    Points : 291
    Points
    291
    Par défaut
    Heu la j'ai pas compris..
    Si je comprends tu veux faire une boucle sur une variable i de reference, et cette fameuse variable i est succeptible d'etre changée en cours d'execution dans la boucle c'est ca ??
    "L'ignorance, c'est la béatitude, ce qui explique peut-être pourquoi tout le monde sourit"
    Pensez au tag , ca évite de se galérer pour rien.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 46
    Points : 34
    Points
    34
    Par défaut
    Non, je voulais dire qu'il y a une suite d'images a calculer qui dependent chacune de la precedente (comme pour le "jeu de la vie") mais que cela peut prendre plus ou moins longtemps de calculer la suivante donc je ne peux plus utiliser un Timer car je ne sais pas combien de temps le calcul de l'image va prendre (le calcul peut prendre plus longtemps que le delai).

  10. #10
    Membre actif Avatar de fumiste972
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Février 2003
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Février 2003
    Messages : 228
    Points : 291
    Points
    291
    Par défaut
    En fait si j'ai bien compris tu affiches successivement des images. Sachant que l'image suivante depend de la precedente c'est ca ??
    Et tu fais comment ??
    Tu attends que l'image soit affichee pour calculer la suivante ou tu calcules la suivante lors de l'affichage de la precedente ??
    Parce que ce que tu peux faire c'est de travailler avec deux buffers (systeme du double buffering) un qui affiche et l'autre qui prepare l'image suivante.
    Comme ca tu risques deja de ne pas avoir de scintillement au niveau de l'image, et en plus ca ira bien plus vite.
    "L'ignorance, c'est la béatitude, ce qui explique peut-être pourquoi tout le monde sourit"
    Pensez au tag , ca évite de se galérer pour rien.

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 46
    Points : 34
    Points
    34
    Par défaut
    J'attends que l'image soit affichée pour calculer la suivante.
    J'ai deux programmes qui sont des animations: dans l'un le calcul des images est immediat quasiment (comme vous m'avez expliqué, je vais utiliser un Timer), dans l'autre le temps de calcul d'une image est de l'ordre de quelques secondes, donc il n'y a pas de scintillement.
    Dans la classe principale, dans la methode main j'ai une boucle qui fait varier "i" de 1 a 10 et a chaque passage de la boucle, il fait un repaint du panneau.
    Dans le paint du panneau il calcule l'image suivante et il l'affiche.
    J'ai pu voir le resultat car, quand je fais du programme une application java (j'ai un Macintosh) qu'on lance avec "java prog.class" , ca marche. C'est lorsque je transforme mon application en applet web, qu'il ne m'affiche que l'image final et pas toutes les images d'avant.

  12. #12
    Membre actif Avatar de fumiste972
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Février 2003
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Février 2003
    Messages : 228
    Points : 291
    Points
    291
    Par défaut
    Ouais j'avais eu le meme probleme pour mon application et je ne me rappelle pas de la solution...
    Tu es bien sure d'avoir separe la partie graphique de la partie traitement. Quelques fois, et meme souvent, ca peut poser des problemes.
    "L'ignorance, c'est la béatitude, ce qui explique peut-être pourquoi tout le monde sourit"
    Pensez au tag , ca évite de se galérer pour rien.

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 46
    Points : 34
    Points
    34
    Par défaut
    Merci. Je vais essayer de separer le calcul de l'affichage.

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 46
    Points : 34
    Points
    34
    Par défaut
    J'ai resolu mon probleme en utilisant un thread comme on me l'avait indique.
    Merci.

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

Discussions similaires

  1. Importer animation realise sous 3DS sous java
    Par Jeremydu77 dans le forum 3D
    Réponses: 2
    Dernier message: 24/07/2009, 22h50
  2. [Système][Class-Path]cherche aide sous java pour fedoracore ou linux
    Par mickey hollywood dans le forum Général Java
    Réponses: 4
    Dernier message: 29/03/2005, 01h13
  3. [Stratégie]Boucle d'animation en Java
    Par Invité dans le forum Graphisme
    Réponses: 10
    Dernier message: 01/02/2005, 19h49
  4. Réponses: 14
    Dernier message: 09/08/2004, 13h42

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