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

AWT/Swing Java Discussion :

Debutant -> Pb d'utilisation instanciation de JPanel


Sujet :

AWT/Swing Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2004
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 26
    Points : 8
    Points
    8
    Par défaut Debutant -> Pb d'utilisation instanciation de JPanel
    Bonjour ,

    A nouveau un petit soucis de debutant ....je cherche a creer 2 fenetres tout simples avec un bouton ...

    Je declare une classe SimpleFrame heritant de la classe JFrame , et dans cette classe j'instancie une classe Contenu heritant de la classe JPanel , et definissant certaines caracteristique de la fenetre, dont le bouton de type JButton ....

    Ca donne ca :
    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
    public class SimpleFrame extends JFrame {
     
     
    	//constructeur de simpleFrame
    	public SimpleFrame () {
    		System.out.println("Constructeur de la fenetre 1 !");
    		this.setTitle("Vous etes sur la 1ere fenetre !");
     
    		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
     
    		this.setSize(300,100);
    		this.setVisible(true);
    		Contenu MonContenu = new Contenu(this);
    		//afin que le contenu detaillé dans l'objet contenu, sopit positionné ds la fenetre , 
    		// on utilise l'objet container
    		Container LeContenant = getContentPane();
    		LeContenant.add(MonContenu);
    	}

    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
    public class Contenu extends JPanel {
     
    	private SimpleFrame MaFenetre = null;
    	private MaSecondeFenetre MaSecondeFenetre = null;
     
    	//1er constructeur du contenu avec la 1ere fenetre
    	public Contenu (SimpleFrame UneFenetre){
    		//constructeur du contenu récupérant les proprietes et methodes de la fenetre
    		System.out.println("Constructeur du conteneur de la fenetre 1 !");
    		setLayout(new FlowLayout());
     
    		this.MaFenetre = UneFenetre ;
    		JButton MonBouton = new JButton("Panique");
    		MaFenetre.add(MonBouton);
    		System.out.println("Le bouton de la fenetre 1 est cree !");
    		MonBouton.addActionListener(new MonReceveur());
    	}

    En lancant le code , j'obtiens bien une fenetre, mais le bouton n'apparait pas dedans !? ... j'ai essaye d'utiliser plutot un BorderLayout a la place du FlowLayout , et j'ai essaye de positionner le bouton a differents endroits (SOUTH, CENTER, etc ..) ..sans succes !?

    Si vous pouvez me dire ce qui cloche, ca serait sympa ...

    merci d'avance

  2. #2
    Futur Membre du Club
    Inscrit en
    Octobre 2004
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 26
    Points : 8
    Points
    8
    Par défaut
    Petite précision, je viens de m'apercevoir qu'en redimensionnant la fenetre (ne contenant pas de bouton), le bouton apparaissait alors dans la dite fenetre .... bizarre non ?!

    Bon donc en passant outre ce bizarre comportement du bouton ...je souhaite a partir du clic bouton , faire apparaitre une seconde fenetre tout en effacant la premiere . Cette seconde fenetre contient elle aussi un simple bouton qui permet de reven,ir sur la premiere qd on clique dessus ...en gros je veux swapper entre ces 2 fenetre par clic sur le bouton de chacune d'elle ....

    trivial en soit, mais il semble que je gere mal les evenements lies au clic bouton (vous allez dire que je cumule les probleems ou les gaffes , mais voila je vous donne tout en vrac en esperant que vous me depatouillez cela ) ....

    je gere le swap ainsi :

    Dans la classe Contenu je declare un receveur d'evenements comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class MonReceveur implements ActionListener {
    		public void actionPerformed (ActionEvent e) {
    			System.out.println("Clic recus !!");
    			//SimpleFrame.FermerFenetre();
    			 //Object MaClasse = e.getClass();
    			MaFenetre.FermerFenetre(MaFenetre);  
    			MaSecondeFenetre.OuvrirFenetre(MaSecondeFenetre);
    		}
    	}
    Et j'appelle donc 2 methodes ultra simple rattachées à chaque objet fenetre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    	public void FermerFenetre (SimpleFrame fenetre) {
    		fenetre.setVisible(false);
     
    	}
     
    	public void OuvrirFenetre (SimpleFrame fenetre) {
    		fenetre.setVisible(true);
     
    	}

    Et donc en cliquant sur le bouton de la fenetre 1, je plante avec de multiples UnKnown Source ...

    Merci pour votre aide sur ces problemes ...

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2007
    Messages : 122
    Points : 126
    Points
    126
    Par défaut
    Pour le premier probleme, as-tu essayé de mettre un FillLayout par exemple ?
    Sinon tu as ausi l'option de mettre un gridLayout, de créer des GridData et d'appliquer le GridData à ton bouton .. tu vois ce que je veux dire ou je ne suis pas clair ?

    peut etre qu'un peu de code serait plus explicite ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    GridData gridData = new GridData();
    gridData.verticalAlignment = GridData.CENTER;
    gridData.horizontalAlignment = GridData.CENTER;
     
    GridLayout layout = new GridLayout();
    maFenetre.setLayout(layout);
     
    JButton MonBouton = new JButton("Panique");
    MonBouton.setLayoutData(gridData);
    ca ne reste qu'un exemple non testé .. donc je ne garantis pas que ca fonctionne .. mais moi c'est toujours comme cela que je fais et ca marche bien !


    Pour le deuxième probleme, est-ce que tu peux mettre la ou les Exceptions ?

  4. #4
    Futur Membre du Club
    Inscrit en
    Octobre 2004
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 26
    Points : 8
    Points
    8
    Par défaut
    merci pour ton tuyau ...je vais essayer ca pour voir ce que ca donne , par contre je ne trouve pas le package d'importation pour le GridData ??

  5. #5
    Futur Membre du Club
    Inscrit en
    Octobre 2004
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 26
    Points : 8
    Points
    8
    Par défaut
    POur l'exception ds le second probleme (clic bouton) voici ce que j'ai :

    Clic recus !!
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at Contenu.OuvrirFenetre(Contenu.java:68)
    at Contenu$MonReceveurAction.actionPerformed(Contenu.java:77)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2007
    Messages : 122
    Points : 126
    Points
    126
    Par défaut
    nullpointer => ta fenetre n'est pas initialisée .. donc tu ne peux pas faire de setVisible .. Il faut que tu l'ouvres dans un premier temps et ensuite tu peux agir dessus ..

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2007
    Messages : 122
    Points : 126
    Points
    126
    Par défaut
    Autant pour moi, les gridData sont utilisés dans les applications RCP .. package : org.eclipse.swt.layout.GridData .. donc pas sûr que cela marche dans ton cas ..

  8. #8
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    	public SimpleFrame () {
    		System.out.println("Constructeur de la fenetre 1 !");
    		this.setTitle("Vous etes sur la 1ere fenetre !");
     
    		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
     
    		this.setSize(300,100);
    		this.setVisible(true);
    		Contenu MonContenu = new Contenu(this);
    		//afin que le contenu detaillé dans l'objet contenu, sopit positionné ds la fenetre , 
    		// on utilise l'objet container
    		Container LeContenant = getContentPane();
    		LeContenant.add(MonContenu);
    	}
    Tu rends ta frame visible avant d'y avoir ajouté son Contenu. Par étonnant qu'il n'apparaisse donc qu'après redimensionnement. Faut faire les choses dans l'ordre et setVisible(true) doit intervenir en dernier.

  9. #9
    Futur Membre du Club
    Inscrit en
    Octobre 2004
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 26
    Points : 8
    Points
    8
    Par défaut
    En effet, en positionnant le setVisible en dernier, ca marche mieux ....
    Si je comprends bien le setVisible s'applique aussi bien a la frame qu'a son contenu ? parceque je pensdais que ce paramettre ne concernait que la frame elle-meme (qui d'ailleurs apparait bien !? ) .

    POur l'initialisation d ela fenetre je suis un peu paume la .... je pensais qu'elle etait deja ouverte et initialisée puisque les 2 constructeurs sont passes !?

    Merci pour vos eclaircissements

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2007
    Messages : 122
    Points : 126
    Points
    126
    Par défaut
    Ton setVisible() ne s'apllique qu'à ta Frame, et si tu le mets avant d'ajouter du contenu, c'est logique qu'il ne prenne pas en compte ce contenu ! C'est comme si tu affichais un Label et que tu mets du texte ensuite .. tu comprends ?

    Pour ta deuxième fenêtre, dans le code que tu fournis, je ne vois que cela concernant celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private MaSecondeFenetre MaSecondeFenetre = null;
    Dans la suite de ton code, tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MaSecondeFenetre.OuvrirFenetre(MaSecondeFenetre);
    Voila pourquoi je te dis que "MaSecondeFenetre" est null, et que tu obtiens un java.lang.NullPointerException ..

  11. #11
    Futur Membre du Club
    Inscrit en
    Octobre 2004
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 26
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Nikk0
    Ton setVisible() ne s'apllique qu'à ta Frame, et si tu le mets avant d'ajouter du contenu, c'est logique qu'il ne prenne pas en compte ce contenu ! C'est comme si tu affichais un Label et que tu mets du texte ensuite .. tu comprends ?

    Pour ta deuxième fenêtre, dans le code que tu fournis, je ne vois que cela concernant celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private MaSecondeFenetre MaSecondeFenetre = null;
    Dans la suite de ton code, tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MaSecondeFenetre.OuvrirFenetre(MaSecondeFenetre);
    Voila pourquoi je te dis que "MaSecondeFenetre" est null, et que tu obtiens un java.lang.NullPointerException ..

    Oui en effet ca semble logique pour le setVisible ....

    Pour l'initialisation de la fenetre dans le constructeur du Contenu , je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.MaFenetre = UneFenetre ;
    Ca n'initialise pas la frame en faisant ainsi ?? ou alors je dois peut-etre declararer l'objet en public au lieu du private ?

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2007
    Messages : 122
    Points : 126
    Points
    126
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.maFenetre = UneFenetre;
    => Tu instancies maFenetre : c'est OK... maFenetre != null
    donc tu peux agir dessus

    => Mais tu n'as pas instancié maSecondeFenetre .. donc maSecondeFenetre == null
    tu ne peux pas agir sur un objet null !!


    En fait le soucis, c'est que tu as une fenetre qui s'affiche, tu cliques sur le bouton, la fenetre se ferme et la deuxieme ne s'ouvre pas ? on est bien d'accord ? ou je suis partis sur une mauvaise piste

  13. #13
    Futur Membre du Club
    Inscrit en
    Octobre 2004
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 26
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Nikk0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.maFenetre = UneFenetre;
    => Tu instancies maFenetre : c'est OK... maFenetre != null
    donc tu peux agir dessus

    => Mais tu n'as pas instancié maSecondeFenetre .. donc maSecondeFenetre == null
    tu ne peux pas agir sur un objet null !!


    En fait le soucis, c'est que tu as une fenetre qui s'affiche, tu cliques sur le bouton, la fenetre se ferme et la deuxieme ne s'ouvre pas ? on est bien d'accord ? ou je suis partis sur une mauvaise piste
    Oui oui c'est exactement ca ...mais MaSecondefenetre est instancié dans le second constructeur du Contenu , de la meme facon, et le 2ème construteur est également lancé avant de cliquer sur le bouton de la 1ere fenetre .

    Ca donne ca dans l'ordre :
    Constructeur de la fenetre 1 !
    Constructeur du conteneur de la fenetre 1 !
    Le bouton de la fenetre 1 est cree !
    Constructeur de la fenetre 2 !
    Constructeur du conteneur de la fenetre 2 !
    Le bouton de la fenetre 2 est cree !

    Clic recus !!

    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at Contenu.OuvrirFenetre(Contenu.java:61)
    Le "Clic recus" correspond à la reception de l'evenement cree par le clic bouton de la premiere fenetre ...

    Donc logiquement les 2 fenetres sont instanciees et ne sont donc pas null ..ou alors j'ai rate un passage ! ?

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2007
    Messages : 122
    Points : 126
    Points
    126
    Par défaut
    Aaaah d'accord !
    Autant pour moi alors ..

    euh .. pourrais-tu mettre le code de la ligne 61 de la class Contenu STP ?

    As-tu essayer de faire un debug, pour voir ce qui génère ce NullPointer ?

  15. #15
    Futur Membre du Club
    Inscrit en
    Octobre 2004
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 26
    Points : 8
    Points
    8
    Par défaut
    Ben en fait la ligne 61 se refere à la methode OuvrirFenetre appelée par l'évenement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	public void OuvrirFenetre (MaSecondeFenetre f) {
    		f.setVisible(true);
     
    	}

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    	public class MonReceveurAction implements ActionListener {
    		public void actionPerformed (ActionEvent e) {
    			System.out.println("Clic recus !!");
     
    			FermerFenetre(MaFenetre);  
    			OuvrirFenetre(MaSecondeFenetre);
    		}
     
    	}
    Sachant que la methode OuvrirFenetre est déclarée AVANT le Receveur de l'evenement (je ne sais pas si ca a de l'importance ?!) .

    Sinon , non je n'ai pas teste le debuggeur ... je vais essayer .

  16. #16
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2007
    Messages : 122
    Points : 126
    Points
    126
    Par défaut
    donc à la ligne 61 tu as cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    f.setVisible(true);
    Si c'est le cas, alors f est null..
    A confirmer par un debug, tu pourras suivre pas à pas ce qui se passe et voir pourquoi f est null.

  17. #17
    Futur Membre du Club
    Inscrit en
    Octobre 2004
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 26
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Nikk0
    donc à la ligne 61 tu as cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    f.setVisible(true);
    Si c'est le cas, alors f est null..
    A confirmer par un debug, tu pourras suivre pas à pas ce qui se passe et voir pourquoi f est null.
    Je ne suis pas famlilier avec Eclipse encore et je ne maitrise pas le debuggeur ...ceci dit, en toute logique, comme j'appelle OuvrirFenetre en lui passant en parametre l'objet MaSecondeFenetre qui est declaré en globale, et que MaSecondefenetre est instanciée dans le 2nd constructeur qui est lancé AVANT, ca devrait le faire ...

    Par contre, j'utilise le meme ActionListener pour les 2 constructeurs de chaque fenetre ...est-ce que JAVA differencie l'actionListener d'une fenetre par rapport a l'autre et en effet l'actionListener de la premiere fenetre est déclaré AVANT l'instanciation de la seconde, mais l'évenement est lui lance APRES ... ?

    J'avoue ne pas voir ce qui cloche la ....

  18. #18
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2007
    Messages : 122
    Points : 126
    Points
    126
    Par défaut
    Si tu n'es pas familier avec le debugger, tu peux essayer de tester tout betement tes 2 frame, pour voir si elles sont nulles ou non ..

    un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    System.out.println(maFenetre==null);
    System.out.println(maSecondeFenetre==null);

    J'ai regarder ton code aussi .. je vois mal l'intérêt de faire appel à une fonction qui ne fait qu'une instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    MaFenetre.FermerFenetre(MaFenetre);  
    MaSecondeFenetre.OuvrirFenetre(MaSecondeFenetre);
    Pourquoi ne pas faire tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    maFenetre.setVisible(false);
    maSecondeFentre.setVisible(true);

  19. #19
    Futur Membre du Club
    Inscrit en
    Octobre 2004
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 26
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Nikk0
    Si tu n'es pas familier avec le debugger, tu peux essayer de tester tout betement tes 2 frame, pour voir si elles sont nulles ou non ..

    un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    System.out.println(maFenetre==null);
    System.out.println(maSecondeFenetre==null);

    J'ai regarder ton code aussi .. je vois mal l'intérêt de faire appel à une fonction qui ne fait qu'une instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    MaFenetre.FermerFenetre(MaFenetre);  
    MaSecondeFenetre.OuvrirFenetre(MaSecondeFenetre);
    Pourquoi ne pas faire tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    maFenetre.setVisible(false);
    maSecondeFentre.setVisible(true);
    Oui tu as tout a fait raison, les 2 methodes ne servent pas a grand chose en l'etat mais c'estg parceque a la base je voulais plus de choses, mais comme je voyais que ca ne marchait aps, j'ai reduit l'action au plus simple, rendant du meme coup les methodes inutiles en soit ....

    Bref, y'a beaucoup de choss qui peuvent etre faite plus simplement ds ce code ...deja pas la peine de declarer 2 classes distinctes pour faire 2 fenetres ..il suffit de declarer une classe unique acceptant les paramtres specifiques a chaque et utiliser 2 constructeurs ...enfin y'a moyen de faire plus propre quoi ...

    La je tatonne pour m'exercer

    Je veia tester mes 2 classes comme tu m'as dis , pour voir ....

  20. #20
    Futur Membre du Club
    Inscrit en
    Octobre 2004
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 26
    Points : 8
    Points
    8
    Par défaut
    Bon ben j'avoue que je suis paume la .....

    j'ai teste la valeur des 2 Fenetres au fil du lancement des constructeurs et j'obtiens ca :
    Le code injecte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    System.out.println("Valeur des 2 fenetres a cet instant :");
    		System.out.println(MaFenetre == null);
    		System.out.println(MaSecondeFenetre == null);
    Resultat :
    Constructeur de la fenetre 1 !
    Constructeur du conteneur de la fenetre 1 !
    Le bouton de la fenetre 1 est cree !
    Valeur des 2 fenetres a cet instant :
    false
    true

    Constructeur de la fenetre 2 !
    Constructeur du conteneur de la fenetre 2 !
    Le bouton de la fenetre 2 est cree !
    Valeur des 2 fenetres a cet instant :
    true
    false

Discussions similaires

  1. [NetBeans] utilisation d'un jpanel fait maison
    Par jmi dans le forum NetBeans
    Réponses: 2
    Dernier message: 03/05/2006, 08h13
  2. [Language][débutant] "transient" où l'utiliser?
    Par rabobsky dans le forum Langage
    Réponses: 7
    Dernier message: 16/08/2005, 12h05
  3. [debutant] problème avec type à utiliser
    Par mlequim dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 15/07/2005, 16h08
  4. [Maven][Debutant]Specifier jar a utiliser
    Par royto dans le forum Maven
    Réponses: 1
    Dernier message: 06/07/2005, 10h46
  5. [Debutant(e)]Quel composant utiliser pour faire une grille
    Par elitost dans le forum Composants
    Réponses: 7
    Dernier message: 21/06/2004, 20h44

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