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 :

Débutant avec les Threads


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Débutant avec les Threads
    Bonjour,

    J'ai étudié les threads dans un livre et avec le tutoriel mais je n'ai pas trouvé de réponse à ma question.

    En exercice, je crée un objet Caisse avec un thread appelant une methode changerposition() et un objet Chien avec un thread appelant une methode sauter().

    Mon programme principal crée un objet Caisse et un objet Chien.

    Ensuite, je ne sais pas utiliser les threads pour qu'au moment où la position de la caisse est comprise entre deux valeurs, le chien saute.

    Pouvez-vous m'aider ?

    Merci

    AdoOs

  2. #2
    Membre Expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Par défaut
    Salut,

    Si j'ai bien saisi ton problème, tu as une caisse qui avance (??? bizarre) et un chien qui saute quand cette caisse est proche de lui.
    Pourrais-tu déjà poster tes classes Chien et Caisse?

    A+

  3. #3
    Invité
    Invité(e)
    Par défaut
    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
    32
    33
    34
     
     
    public class Caisse extends Thread
    {
     
    private int X, Y, d;
    Visualisation Visue;
     
    public Caisse(int a, int b, Visualisation visue)
    {
    this.X=a;
    this.Y=b;
    this.Visue=visue;
     
    }
     
    public changerposition(int i) 
    {
    this.X=i;
    this.Visue.repaint();
    }
     
    public void run()
    {
    for (int i=0; i<5000; i++)
    {
    d=(int)(Math.random()) ;
     
    changerposition(d) ;
    }
     
    }
     
    }

    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
    public class Chien extends Thread
    {
     
    private int X, Y;
    Visualisation Visue;
     
    public Chien(int a, int b, Visualisation visue)
    {
    this.X=a;
    this.Y=b;
    this.Visue=visue;
    }
     
    public sauter() 
    {
    this.Y=Y+50; // Hauteur de la boite : 50px
    this.Visue.repaint();
    }
     
    public void run()
    {
    for (int i=0; i<5000; i++)
    {
    sauter() ;
    }
    }
    }
    Voilà les deux classes.

    Merci pour ton aide.

  4. #4
    Membre Expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Par défaut
    Pourquoi tu fais pas un Thread unique qui fais avancer ta boite et qui connaissant la position du Chien le fait sauter quand elle est trop près de lui?
    Je trouve ça un peu plus logique que ce que tu as fais... Mais comme tu dis, tu es débutant, alors ça peut paraitre normal. Tu fais juste 2 classes Chien et Caisse (sans extend Thread) et tu fais une 3ème classe qui hérite de Thread et qui va s'occuper des mouvements de ta caisse et de ton chien.

    t'as suivi ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    J'avais pensé à çà mais le formateur en l'entreprise nous a demandé de réaliser cette exercice en animant caisse par un thread et chien par un thread et en les faisant communiquer.

    Je dois faire çà pour demain après-midi et c'est compliqué.

    C'est pour çà que je demande comment faire pour dire au chien que la caisse est à tel endroit.

    C'est étrange comme exercice quand même.

    J'avais pensé faire une animation graphique mais je pense qu'un rendu texte sera suffisant car j'ai pas trop de temps.

  6. #6
    Membre Expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Par défaut
    Ah, dans ce cas là, c'est pas du tout pareil. Tu veux faire un système de communication entre thread...
    C'est pas extrèmement étrange (à part le fait que la caisse puisse avancer ), c'est pour t'apprendre la communication entre Thread ^^

  7. #7
    Membre éclairé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 58
    Par défaut
    Je suis pas un expert en thread mais ma logique voudrait que le chien puisse accéder au information de la caisse (savoir où celle ci se trouve). Tu pourrais faire ca en passant ta caisse à la classe chien.
    Sinon il y a une autre solution qui consiste à faire une classe singleton qui représente ton environnement (tous les objets sont y sont présents avec leurs coordonnées). Chaque objet (thread) pourrait ainsi connaitre la position des autres objets.

Discussions similaires

  1. débutante avec les threads
    Par dc.sara dans le forum Réseau
    Réponses: 2
    Dernier message: 10/12/2007, 11h08
  2. [log4j][débutant] Bonnes pratiques avec les threads ?
    Par scougirou dans le forum Logging
    Réponses: 1
    Dernier message: 13/07/2007, 16h27
  3. Probleme avec les threads
    Par Orahn dans le forum MFC
    Réponses: 5
    Dernier message: 04/11/2005, 10h14
  4. Réponses: 5
    Dernier message: 10/05/2005, 10h22
  5. [langage] Perl a t'il été compiler avec les threads
    Par vodevil dans le forum Langage
    Réponses: 2
    Dernier message: 07/05/2005, 15h00

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