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

avec Java Discussion :

Variable public nulle


Sujet :

avec Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Variable public nulle
    Bonjour,

    Je débute et tente de comprendre les mécanismes de Java.
    J'ai un souci car une variable déclarée publique est "null"
    Dans ce test, il y a 3 classes, la première point d'entrée crée une frame
    la deuxième place les menus, enfin la dernière gère les évènements

    Voici le code :

    MaFrame

    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
    23
    24
    25
    26
    27
    import java.awt.*;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
     
    public class MaFrame extends Frame {
     
    	private static final long serialVersionUID = 1L;
    	public Label lbl;
    	public MaFrame m;
     
    	public MaFrame() {
    		super();
    		setTitle(" Titre de la Fenetre ");
    		setSize(300, 350);
    		MenuFenetre mf = new MenuFenetre(this);
    		setMenuBar(mf);
    		setVisible(true); // affiche la fenetre
    		addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e){System.exit(0);}});
    	}
     
    	public static void main(String[] args) {
    		MaFrame m =new MaFrame();
    		Label lbl=new Label("Essai de texte");
    		lbl.setName("lbl");
    		m.add(lbl);
    	}
    }
    MenuFenetre

    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
    import java.awt.*;
     
    public class MenuFenetre extends java.awt.MenuBar {
    	private static final long serialVersionUID = 1L;
    	public MenuItem itemQuitter, itemNouveau, itemApropos;
    	public MaFrame m;
     
    	public MenuFenetre(MaFrame m) {
    		Menu menuFichier = new Menu(" Fichier ");
    		itemNouveau = new MenuItem(" Nouveau ");
    		menuFichier.add(itemNouveau);
    		add(menuFichier);
     
    		itemNouveau.addActionListener(new DispatchAction(DispatchAction.NEW,m));
    	}
    }
    DispatchAction

    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
    23
    24
    25
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
     
    public class DispatchAction implements ActionListener{
     
    	static final int NEW =1;
    	protected MaFrame _obj;
    	protected int _type;
     
    	DispatchAction(int type,MaFrame obj){
    		_obj=obj;
    		_type=type;
    	}
     
    	public void actionPerformed(ActionEvent e) {
    		switch (_type) {
    		case NEW:
    			System.out.print (_obj.lbl.toString());			// ERREUR 
    			break;
    		default:
    			break;
    		}
    	}
    }
    _obj pointe la Frame mais le label "lbl" est NULL

    Merci de votre aide.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 552
    Points : 21 608
    Points
    21 608
    Par défaut
    Citation Envoyé par b.speedy Voir le message
    J'ai un souci car une variable déclarée publique est "null"
    Et elle le restera aussi longtemps que tu ne lui donneras pas d'autre valeur. À aucun moment dans ton code, tu ne donnes de valeur à la variable membre lbl. Il n'y a donc aucune raison qu'elle ait une autre valeur que null.

    Qu'elle soit public ou non n'y change rien.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Je pensais que la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lbl=new Label("Essai de texte");
    initialisait cette variable.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 552
    Points : 21 608
    Points
    21 608
    Par défaut
    Citation Envoyé par b.speedy Voir le message
    Je pensais que la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lbl=new Label("Essai de texte");
    initialisait cette variable.
    C'est le cas, mais il n'y a aucune ligne de ce genre dans ton programme.

    Tu confonds peut-être avec la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Label lbl=new Label("Essai de texte");
    qui déclare une nouvelle variable locale, de même nom que la variable membre, ce qui ne fait rien de particulier.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci,

    Je viens de comprendre mon erreur.

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

Discussions similaires

  1. variable public nulle
    Par b.speedy dans le forum Débuter
    Réponses: 5
    Dernier message: 30/04/2012, 18h10
  2. Utilisation d'une variable public
    Par Pat51 dans le forum Access
    Réponses: 5
    Dernier message: 16/07/2006, 14h41
  3. [VBA] taille max d'une variable public
    Par gigs dans le forum Général VBA
    Réponses: 9
    Dernier message: 23/11/2005, 15h27
  4. déclaration de variable public
    Par mathieu57 dans le forum MFC
    Réponses: 5
    Dernier message: 15/09/2005, 17h36
  5. [servlet]problème de variable jamais nulle
    Par omega dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 18/03/2004, 09h31

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