Soit le code suivant
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.
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"); } }
Partager