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

AWT/Swing Java Discussion :

Affichage Multi-Thread .


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 61
    Par défaut Affichage Multi-Thread .
    Bonjour,

    Voici le deal:

    j'ai un JFrame, sur ce JFrame j'ai d'un cote (gauche) une colone de boutons, et a droite une zone de dessins (des JPanel).

    A chaque fois que je presse sur un bouton, un nouveau thread "ball" est cree, qui deplace une balle dans la zone de dessin de droite (une ball qui rebondie..)

    J'ai un autre et unique thread qui fait deplacer un avion dans la zone dessin.
    Et eventuellement un BAckground qui va se reaficher a chaque fois, pour pas laisser de trainées...

    Ce que j'affiche ce sont des images (sprites), donc la du coup, si je n'utilise pas de Double-Buffering, VIVE le clignotage.

    Bon, C'est la que j'ai un problème, je n'arrive pas a trouvé un moyen d'afficher toutes ces images, correcteemnt SANS cligontement.

    J'ai deja essayé plusieurs chose:

    Chaque thread affiche son buffer.. mais la ca rame sec (normale si je clique 40 fois sur lancer une balle... il y aura 40 buffer)

    j'ai essayer d'implenter un buffer "unique" (un thread affichage qui s occupe d afficher le buffer), mais comme je fait des Sleep(random) pour les balles, Ca clignote beaucoup...

    SI quelqu'un a un bonne solution à me proposer, je suis pronneur !

    d'avance merci!

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 10
    Par défaut
    Salut,

    fais tu des censés libérer de la mémoire, et donc accélérer l'affichage ?

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 61
    Par défaut
    oui

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Les threads ne sont pas censé afficher des choses. Montre-nous ton code. Normalement tu n'as pas besoin de double-buffering. Tu dois faire quelque chose de mal

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 61
    Par défaut
    Ok.. voici ce que fait,mais dans ma tête c'est encore flou, de comment je doit "structurer" mon programmes...
    Je ne comprend pas comment faire pour communique les resultats des deplacement au thread d'affichage..

    Voila comment je vois la structure:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    void main{
     
    new Fenetre()
    }
     
    classe Fenetre extends JFrame {
     
    //creation de ma fentre..
     
    panelZoneDeJeux = new JPanel();
    //C'est dans ce Jpanel que tout va ce dessiner...
    // mais comment faire ??
    //Je doit creer une classe panelZoneDeJeux  qui extends JPanel pour y redefinir les methode paint etc.. ?
    //puis je passe panelZoneDeJeux   quand je creer mes balle et bateau ?
    //puis dans Balle et Bateau je fait un panelZoneDeJeux.paint() ??
     
     
    panelDeGaucheAvecMesBoutons = new JPanel
    //ajout des boutons, avec quand je clique dessus ----> BAlle balle = new Balle; balle.start() //lancement du thread
    }
     
     
    clase Balle extends thread {
     //Je fait bouger mes balles
    int x,y sont donc modifié..
    }
     
    classe Avion extends thread {
    //je fait bouger mon avion
    int x,y sont donc modifé aussi...
    }
    merci

  6. #6
    Invité
    Invité(e)
    Par défaut
    La réponse m'interessera.

Discussions similaires

  1. Multi Thread et affichage en WPF/C#
    Par jubourbon dans le forum C#
    Réponses: 1
    Dernier message: 13/05/2013, 18h07
  2. Tri multi-threadé
    Par Tifauv' dans le forum C
    Réponses: 8
    Dernier message: 28/06/2007, 09h00
  3. Réponses: 16
    Dernier message: 30/01/2004, 11h05
  4. [VB6][active x] faire du multi-thread avec vb
    Par pecheur dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/05/2003, 12h01
  5. [Kylix] exception qtinft.dll et multi-threading
    Par leclaudio25 dans le forum EDI
    Réponses: 3
    Dernier message: 27/03/2003, 18h09

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