gbourgeois0019
Messages postés152Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention 2 juin 2008
-
4 nov. 2006 à 19:04
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023
-
4 nov. 2006 à 20:24
Bonjour,
Prenons comme exemple le code suvant :
// Dans un fichier :
package MonPackage;
public class ClasseA extends java.applet.Applet
{
int Position = 0;
.....
}
// Dans un autre fichier:
package MonPackage;
public class MonThread extends Thread
{
public MonThread( ??? );
{
}
}
Donc, je voudrais avoir acces a ma variable Position a partir de ma thread.
J'ai donc essayer de passer la variable par reference mais ca ne marche pas.
Quelqu'un sait comment je pourrais faire cela ??
Merci à l'avance.
Guillaume.
________________________________________________________________________
Hardware is what we play with until it breaks, Software is what we play with until it works !
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 4 nov. 2006 à 19:18
Salut,
tu peux le faire de deux façon (de plus mais bon ici je ne parlerais que de 2 facon) :
package MonPackage;
public class ClasseA extends java.applet.Applet
{
int position = 0;
.....
public int getPosition(){
return position;
}
public void setPosition(int position){
this.position = position;
}
public void uneMethode(){
MonThread mt = new MonThread(this);
......
}
}
// Dans un autre fichier:
package MonPackage;
public class MonThread extends Thread {
public MonThread( ClasseA cA ){
int position = cA.getPosition();
position++;
cA.setPosition(position);
.....
}
}
ou encore en static mais c'est dangereux
package MonPackage;
public class ClasseA extends java.applet.Applet
{
static int position = 0;
.....
public static int getPosition(){
return position;
}
public static void setPosition(int position){
this.position = position;
}
}
// Dans un autre fichier:
package MonPackage;
public class MonThread extends Thread {
public MonThread( ){
int position = ClasseA.getPosition();
position++;
ClasseA.setPosition(position);
.....
}
}
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
gbourgeois0019
Messages postés152Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention 2 juin 20081 4 nov. 2006 à 19:55
J'ai essayer la première méthode, cela devrait marcher, pas d'erreur de compilation non plus, mais lorsque je fais MonThread mt = new MonThread(this); , mon Applet gèle et le thread ne semble pas démarrer. ( J'ai rajouter mt.start(); aussi ), mais ca fait exactement le meme chose ...
________________________________________________________________________
Hardware is what we play with until it breaks, Software is what we play with until it works !