Variables globales/extern en java? [Résolu]

Signaler
Messages postés
897
Date d'inscription
jeudi 6 juin 2002
Statut
Membre
Dernière intervention
26 juillet 2007
-
Messages postés
897
Date d'inscription
jeudi 6 juin 2002
Statut
Membre
Dernière intervention
26 juillet 2007
-
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

Messages postés
5351
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
17 août 2020
97
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
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
35
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.
Messages postés
897
Date d'inscription
jeudi 6 juin 2002
Statut
Membre
Dernière intervention
26 juillet 2007
2
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 !
Messages postés
897
Date d'inscription
jeudi 6 juin 2002
Statut
Membre
Dernière intervention
26 juillet 2007
2
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