Variables globales/extern en java?

Résolu
z980x Messages postés 897 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 26 juillet 2007 - 19 nov. 2006 à 21:52
z980x Messages postés 897 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 26 juillet 2007 - 20 nov. 2006 à 22:39
Bonjour à tous,

j'aimerais savoir s'il est possible d'avoir des variables globales en java ou un mot clé tel que extern en C/C++...
Voila pourquoi:

J'aimerais changer des trucs dans une JFrame à partir d'une autre classe, écrite dans un autre fichier que celle ou la Jframe a été créée et instanciée...

Merci !

Philippe

4 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
20 nov. 2006 à 09:32
Salut,

il te suffi de passer f en paramètre exemple (ici pas de static (faut faire attention au static)):

public class GUI extends JFrame{

    public Gui(){

    }
}

public class Autre{

    private Gui gui;
    public Autre( ){ }

    //tu peux passer par le contructeur
    public Autre( Gui gui){
      setGui(gui);
    }

   

    ///ou encore par une methode
    public void setGui(Gui gui){
       this.gui = gui;
       //pour l'exemple tu peux meme faire un dispose sur gui dans la classe autre
       gui.dispose();
    }

    //pour etre coherent
    public Gui getGui(){
       return gui;
    }
}
//pour l'utilisation
public class Main{
    public static void main(String [] args){
       Gui gui = new Gui();
       Autre autre = new Autre(gui);
       //ou
       Autre autre = new Autre();
       autre.setGui(gui);
    }
}

//Autre cas ici avec du static

public class GUI extends JFrame{

    public Gui(){  }
}

public class Autre{

    public Autre( ){ }
    //exemple d'utilisation
    public void disposeGui(){
       if(Main.gui != null)//petit test de routine  
          Main.gui.dispose();
    }
}

//pour l'utilisation

public class Main{
   
public static Gui gui = null;


    public static void main(String [] args){

       gui = new Gui();

       Autre autre = new Autre();
       autre.disposeGui();
    }

}

voila voila

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
3
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
20 nov. 2006 à 00:20
Salut:

Si tes variables sont statiques et publiques tu peux les utiliser dans une autre classe en les préfixant par le nom de la classe.
0
z980x Messages postés 897 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 26 juillet 2007 2
20 nov. 2006 à 08:13
Bonjour,

voici le pb:

J'ai une classe dans un fichier:

public class GUI extends Jframe{

    public Gui(){

    }
}

Dans un autre fichier, dans le main, je fais ca:

Gui f = new Gui();

J'aimerais utiliser ce f dans une autre classe, d'un autre fichier. En effet, j'aimerais pouvoir modifier les valeurs de cette Jframe dans un autre fichier...

Sinon, pour ta méthode, es tu sur que c'est le nom de la classe?
ce qui ferait pour moi: Gui.f ...

Merci de ton aide.
(et désolé, je ne peux pas tester avant ce soir, je ne suis pas chez moi, c'est pour ca que je demande le plus d'infos possibles...)

Voila !
0
z980x Messages postés 897 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 26 juillet 2007 2
20 nov. 2006 à 22:39
Je te remercie, j'ai recommencé tout mon programme pour repartir sur de bonnes bases... J'ai utilisé ta première méthode et ca a l'air de fonctionner !

Merci !

Philippe
0
Rejoignez-nous