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

Agents de placement/Fenêtres Java Discussion :

this . maFrame . getContentPane();


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Points : 64
    Points
    64
    Par défaut this . maFrame . getContentPane();
    Bonsoir,

    J'ai le code suivant:

    Code java : 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
     
    public class AboutBox {
     
            private JFrame myFrame;
            private JLabel label;
            // private JPanel panneau;
     
            public AboutBox()
            {
                JFrame myFrame = new JFrame();
                myFrame.setTitle("A propos...");
                myFrame.setSize(600, 350);
                // myFrame.setPreferredSize(new Dimension(300, 200));
     
                myFrame.setLocationRelativeTo(null);
                // myFrame.setDefaultCloseOperation(EXIT_ON_CLOSE);
                // myFrame.pack();
     
                myFrame.setVisible(true);
     
                // printLogo();
                ImageIcon icon = createImageIcon("logo2-007CC2.png", "");
                this.label = new JLabel("dsfdqsfdfdsf", icon, JLabel.LEFT);
                myFrame.getContentPane().add(this.label); 
            }
    }

    J'instancie dans mon programme la classe AboutBox avec un new AboutBox().

    Cela fonctionne. Sauf que si à la dernière ligne je mets this.myFrame.getContentPane().add(this.label); au lieu de myFrame.getContentPane().add(this.label); et bien ca plante complètement. Je n'arrive pas a comprendre pourquoi je ne peux pas metrte un "this". Une idée ? L'erreur est :

    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at msview.AboutBox.<init>(AboutBox.java:40)
    at msview.MainJFrame$1.actionPerformed(MainJFrame.java:53)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
    at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)
    at java.awt.Component.processMouseEvent(Component.java:6505)
    etc..., il y a encore plein de lignes...


    Autre question:
    Initialement j'avais mis le code qui affiche le log dans une fonction printLogo(), comma ca:

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            private void printLogo()
            {
                ImageIcon icon = createImageIcon("logo2-007CC2.png", "");
                this.label = new JLabel("dsfdqsfdfdsf", icon, JLabel.LEFT);
                myFrame.getContentPane().add(this.label); 
            }

    Ce code mis dans le constructeur de AboutBox fonctionne parfaitement, mais lorsque il est mis dans printLogo() il ne fonctionne pas. Evidement j'appelle printLogo() dans le constructeur de AboutBox (mis en commentaire dans le premier extrait de code).

    L'exception levée est :
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at msview.AboutBox.printLogo(AboutBox.java:46)
    at msview.AboutBox.<init>(AboutBox.java:37)
    at msview.MainJFrame$1.actionPerformed(MainJFrame.java:53)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
    etc..., il y a encore plein de lignes...

    Pour moi c'est incompréhensible, c'est juste des copier/coller du code.

    Volontairement, je n'ai pas voulut faire hériter ma classe AboutBox d'un JFrame et j'ai préféré utiliser un JFrame en tant que variable privé de ma classe. Ca ne doit pas être la le problème.

    Merci.

  2. #2
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Points : 64
    Points
    64
    Par défaut
    OK, c'est bon.

    Mon problème était un problème conceptuel. Dans le constructeur de la classe AboutBox je déclare une nouvelle variable myFrame dont la portée n'est que locale au constructeur ; ce n'est pas le myFrame "globale" de la classe.

    Il faut juste écrire: myFrame = new JFrame(); au lieu de JFrame myFrame = new JFrame();

    Ou de mettre this.myFrame comme je le souhaitais.

    Problème résolut.

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

Discussions similaires

  1. This.value au lieu de document.getElementById('field').value
    Par yoyot dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 04/03/2005, 14h02
  2. [MFC] Pointeur this et fonctions statiques
    Par Yellowmat dans le forum MFC
    Réponses: 5
    Dernier message: 08/02/2005, 10h15
  3. pb de fonction simple (this.form.submit()..)
    Par petitsims dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/01/2005, 09h29
  4. type de this
    Par julie29 dans le forum C++
    Réponses: 4
    Dernier message: 30/11/2004, 20h39
  5. [Oracle 9i] Erreur: wrong incarnation of this file
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 5
    Dernier message: 26/11/2004, 10h53

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