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

Langage Java Discussion :

this et classe "parent"


Sujet :

Langage Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 760
    Points : 626
    Points
    626
    Par défaut this et classe "parent"
    Bonjour,
    Existe il par defaut un "pointeur" vers l'objet courant mais de la classe "parente" ? Je crois que oui mais je ne sais plus comment on y fait reference, ou alors je reve....
    Autrement dit dans le code suivant qui est un init d'applet, le this
    fait reference à l'ActionListener, alors que je voudrais en fait utiliser l'objet applet courant....
    D'avance merci


    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
     
         // using a button to avoid the browser to fix the dimension of the applet
        // and to let the user not running the program if he wants not to
        public void init() {
            starter_button = new JButton("Run the OrganicBuilder.");
            starter_button.addActionListener(
                new ActionListener() { 
                    public void actionPerformed( ActionEvent e ) { 
                         // safe as the source may only be this button
                        JButton starter_button = (JButton)e.getSource();
                        userInterface = new UI(this);
                        userInterface.setVisible(true);
                        starter_button.setText("OrganicBuilder is running ...");
                        starter_button.setEnabled(false);
                    } 
                });
        }

  2. #2
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut
    Ne serait-ce pas super par hasard?

  3. #3
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Non, il parle de la classe englobant la classe interne.

    Au lieu de this, il faut écrire ClasseEnglobante.this. Par exemple (stupide mais valide) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    class MyFrame extends JFrame {
      MyFrame() {
        addWindowListener(new WindowAdapte() {
          public void windowClosing(WindowEvent evt) {
            MyFrame.this.dispose(); // appelle dispose() dans MyFrame
          }
        });
      }
    }

  4. #4
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut
    Citation Envoyé par Gfx
    Non, il parle de la classe englobant la classe interne.

    Au lieu de this, il faut écrire ClasseEnglobante.this. Par exemple (stupide mais valide) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    class MyFrame extends JFrame {
      MyFrame() {
        addWindowListener(new WindowAdapte() {
          public void windowClosing(WindowEvent evt) {
            MyFrame.this.dispose(); // appelle dispose() dans MyFrame
          }
        });
      }
    }

    ok autant pour moi, merci beaucoup Gfx

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 760
    Points : 626
    Points
    626
    Par défaut
    Oui, exact, je viens de le retrouver de même. Merci.

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

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