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

Java ME Discussion :

[Thread] Passer une variable


Sujet :

Java ME

  1. #1
    Membre habitué Avatar de PoZZyX
    Inscrit en
    Août 2005
    Messages
    426
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 426
    Points : 154
    Points
    154
    Par défaut [Thread] Passer une variable
    Bonjour bonjour,

    Je travaille avec des threads pour l'envoi de sms et j'aimerais passer le texte que j'envoi dans le sms depuis le programme principal jusqu'au thread sans utiliser de variables globales (si possible).

    Alors j'avais pensé à un trux du style pour ma classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class thread_envoi implements Runnable
    	{
    		public String str_thread_envoi_commande;
     
    		public void run()
    		{
    			String sms_destination...
    ...
    et pour le démarrage du thread :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public void envoyer_commande(String str_commande)
    	{
    		thr_envoi = new Thread(new thread_envoi());
    		thr_envoi.str_thread_envoi_commande = str_commande;
    		thr_envoi.start();
    	}
    Comme ça à chaque nouveau thread que je lance il a sa valeur sans risque que si il y en a deux en meme temps il y aie un conflit.

    Mais visiblement on peut pas faire comme ça, soit j'ai fait une erreur, soit c'est pas possible.

    Merci pour votre aide et en espérant que vous avez compris ce que je cherchais

    ++

  2. #2
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Pourquoi es-ce que tu ne passes pas directement la valeur dans le constructeur, c'est quand même plus propre...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class thread_envoi implements Runnable{
    <div style="margin-left:40px">private String str_thread_envoi_commande;
     
    public thread_envoi(String commande){
    <div style="margin-left:40px">super();
     
    this.str_thread_envoi_commande = commande;</div>}</div>}

  3. #3
    Membre habitué Avatar de PoZZyX
    Inscrit en
    Août 2005
    Messages
    426
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 426
    Points : 154
    Points
    154
    Par défaut
    Je n'ai pas précisé que envoyer_commande n'est pas dans la classe thread.

    mon programme se compose comme ça :
    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
     
    imports...
    public class blabla
    {
          start_app()
          {
     
          }
     
          envoyer_commande(asf)
          {
     
          }
     
          class thread_envoi implements Runnable
          {
                public void run()
                {
     
                }
          }
    }
    et je ne sais pas si ma méthode est la bonne pour appeler un thread depuis envoyer_commande, je suis débutant en java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    thr_envoi = new Thread(new thread_envoi());
    thr_envoi.str_thread_envoi_commande = str_commande;
    thr_envoi.start();
    Merci pour ton aide

  4. #4
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Ma solution reste quand même valable, non ?

  5. #5
    Membre habitué Avatar de PoZZyX
    Inscrit en
    Août 2005
    Messages
    426
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 426
    Points : 154
    Points
    154
    Par défaut
    mais cette fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public thread_envoi(String commande){super();
     
    this.str_thread_envoi_commande = commande;
    }
    serait tout de meme exécuté sur un thread parallèle en appelant par :

    thread_envoi.thread_envoi("blub"); ???

  6. #6
    Membre habitué Avatar de PoZZyX
    Inscrit en
    Août 2005
    Messages
    426
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 426
    Points : 154
    Points
    154
    Par défaut
    ah je crois que je t'avais mal compris 2 seconde je vais essayer de faire seul (enfin avec l'aide que tu m'a déja donnée)

  7. #7
    Membre habitué Avatar de PoZZyX
    Inscrit en
    Août 2005
    Messages
    426
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 426
    Points : 154
    Points
    154
    Par défaut
    Finalement, je ne vois pas

    Voila ce que j'ai essayé :
    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
     
    public void envoyer_commande(String str_commande)
    	{
    		thr_envoi = new Thread(new thread_envoi());
    		thread_envoi.fixer_commande(str_commande);
    		thr_envoi.start();
    	}
     
    	class thread_envoi implements Runnable
    	{
    		public String str_thread_envoi_commande;
     
    		public void fixer_commande(String commande)
    		{
    			this.str_thread_envoi_commande = commande;
    		}
     
    		public void run()
    		{
    ...
    ...
    ...
    mais j'ai une erreur : non-static method fixer_commande(java.lang.String) cannot be referenced from a static context thread_envoi.fixer_commande(str_commande);

    :S

  8. #8
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Oui tu m'as mal compris, je parle d'un constructeur et pas d'une méthode... De plus, ton erreur est normale, car tu essaies d'y accéder de manière statique...

    Voilà ce que à quoi je pensais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class thread_envoi implements Runnable{
    <div style="margin-left:40px">private String str_thread_envoi_commande;
     
    public thread_envoi(String commande){
    <div style="margin-left:40px">super();
     
    this.str_thread_envoi_commande = commande;</div>}</div>}
    et pour l'employer, tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Thread thread = new Thread(new thread_envoi(commande));
    thread.start();

  9. #9
    Membre habitué Avatar de PoZZyX
    Inscrit en
    Août 2005
    Messages
    426
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 426
    Points : 154
    Points
    154
    Par défaut
    Ok merci pour ton aide, ça m'arrange beaucoup

    merci ++

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

Discussions similaires

  1. faire passer une variable d'une fct js à une page php
    Par harlock59 dans le forum Langage
    Réponses: 1
    Dernier message: 25/11/2005, 14h41
  2. Passer une variable C à un script en Javascript
    Par aquouel dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 21/09/2005, 17h41
  3. [Custom Tags 1.2] Passer une variable comme valeur d'attribut d'un tag jsp
    Par Pi2 dans le forum Taglibs
    Réponses: 7
    Dernier message: 16/09/2005, 14h44
  4. Passer une variable entre deux fenêtres
    Par DeezerD dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/08/2005, 09h52
  5. [Struts] Passer une variable dans l'url
    Par pilz dans le forum Struts 1
    Réponses: 2
    Dernier message: 30/03/2005, 15h23

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