Accéder à un objet du main à partir d'une autre classe

didygwatinik Messages postés 58 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 15 décembre 2009 - 6 mai 2009 à 09:24
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 6 mai 2009 à 19:32
Bonjour,
Mon problème est très simple et à mon avis très bête mais bon, comment faire pour accéder à un objet qui est dans mon main à partir de mes autres classes : j'aimerai accéder à appli à partir de JMenuLivre : voilà un apercu de mon code :

public class Principal {
 static void main(String[] args) {
        // TODO Auto-generated method stub
        Appli appli= new Appli();
    }

}


public class Appli extends JFrame{
    private ArrayList<Livre> listLivre;
    private  JFrame jFrame;
    public PanAbout pane = new PanAbout();
//constructeur et reste


public class JMenuLivre extends JMenu {
    private JFrame jfFrame;
    public JMenuLivre () {
//....
}


En gros j'aimerai pouvoir faire dans le constructeur de JMenuLivre le traitement suivant : jfFrame=appli.getJFrame(); Je ne vois pas comment faire!

Merci pour votre aide

8 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
6 mai 2009 à 10:07
Salut,

Au lieu de déclarer ta variable appli en tant que variable locale de fonction, déclare la en variable static de classe.
0
didygwatinik Messages postés 58 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 15 décembre 2009
6 mai 2009 à 10:20
A présent j'ai ceci,
public class Principal {
    public static Appli appli;
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        appli= new Appli();
    }
}
Donc je devrai faire jfFrame=Principal.appli.getJFrame(); pour avoir ce que je veux mais j'ai une erreur!!
0
didygwatinik Messages postés 58 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 15 décembre 2009
6 mai 2009 à 10:27
Un objet n'est pas  instancié ??!!
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
6 mai 2009 à 10:48
"mais j'ai une erreur" : laquelle ? Comment veux-tu qu'on t'aide si tu nous dit pas quelle erreur tu as ???
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
didygwatinik Messages postés 58 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 15 décembre 2009
6 mai 2009 à 10:50
L'erreur c'est :
Thread [main] (Suspended (exception NullPointerException))   
    JMenuLivre.() line: 44    //Principal.appli.getJFrame().setContentPane(pane);
    Appli.() line: 20    //JMenuLivre jMenuLivre = new JMenuLivre();
    Principal.main(String[]) line: 12    //appli = new Appli();

apparement c'est parce qu'un objet n'est pas instancié
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
6 mai 2009 à 10:54
Debuggue ton code pour voir quel objet est null, mais c'est très certainement le getJFrame qui renvoie un objet null
0
didygwatinik Messages postés 58 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 15 décembre 2009
6 mai 2009 à 19:12
Oui c'est ca c'est le getJFrame qui renvoie un objet null, je ne vois pas comment ca se fait, tu aurai une explication?
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
6 mai 2009 à 19:32
Sans connaître ton code, je peux guère savoir !

Il te faut peut-être instancier une variable...
0
Rejoignez-nous