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 :

question sur la class AbstractAction


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 30
    Par défaut question sur la class AbstractAction
    Soit le code suivant
    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
    import javax.swing.*;
    import java.awt.event.*;
     
    public class Hello {
     
    	public static void main(String[] arg) {
    		ImageIcon icon = new ImageIcon(Hello.class.getResource("image.gif"));
    		JButton button = new JButton(new ActionPrint("superBouton", icon));
    		button = null;
    	}
    }
    class ActionPrint extends AbstractAction{
    	ActionPrint(String text, ImageIcon icon) {
    		super(text, icon);
    	}
    	public void actionPerformed(ActionEvent e) {
    		System.out.println("hello");
    	}
    }
    Normalement le button est supprimé lors du prochain passage du gc. Mais que devient l'action associée? Pire, je me demande si il existe une référence dans action sur le button. Dans ce cas, si l'action n'était pas mise à null, le button serait toujours référencé (via action) et donc ne serait donc pas supprimé lors du prochain passage par le gc.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 179
    Par défaut
    Citation Envoyé par javanoiid Voir le message
    Normalement le button est supprimé lors du prochain passage du gc. Mais que devient l'action associée? Pire, je me demande si il existe une référence dans action sur le button.
    Encore pire: Le bouton contient bien une référence sur l'action et l'action contient une référence sur le bouton (via un PropertyListener).
    Donc ces deux objets se référencent mutuellement. Mais n'ai crainte, le Garbage Collector sait identifier ce genre de cas et finira par supprimer bouton et action.

    Fred

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 30
    Par défaut
    Je dois utiliser le jdk1.4.2... le gc était-t-il déjà capable de reconnaitre ce type de cas?

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 179
    Par défaut
    Citation Envoyé par javanoiid Voir le message
    Je dois utiliser le jdk1.4.2... le gc était-t-il déjà capable de reconnaitre ce type de cas?
    Oui oui, c'est un cas qui a été prévu dès sa conception.
    Pas d'inquiétude de ce coté là.

    Fred

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 30
    Par défaut
    Un grand merci. Cette class AbstractAction est vraiment pratique

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

Discussions similaires

  1. [stl] questions sur la classe string
    Par r0d dans le forum SL & STL
    Réponses: 3
    Dernier message: 23/02/2007, 00h31
  2. Question sur une classe <template>
    Par Pingva dans le forum C++
    Réponses: 1
    Dernier message: 26/01/2007, 17h16
  3. [C# 2.0] Question sur la classe SerialPort
    Par cyllix dans le forum Windows Forms
    Réponses: 4
    Dernier message: 11/09/2006, 08h51
  4. Question sur JDBC classe mysql
    Par oOoOuuhmAn dans le forum JDBC
    Réponses: 2
    Dernier message: 11/05/2006, 17h44
  5. Question sur la classe InputStream
    Par Zec Merquise dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 26/10/2005, 02h36

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