Voilà une petite question que je me pose :
Dans une application SWT :
On crée un shell principal et des shell "secondaires" pour les Dialog par exemple...
Prenons un Dialog avec :
- 1 image
- 2 panneaux
- 2 boutons
Dans une méthode privée, je crée et j'initialise tous ces éléments.
La méthode "open" que j'utilise comme un setVisible(true) en SWING est la suivante :
le "dialogShell" est le shell que j'utilise pour afficher la dialog.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public void open() { try { dialogShell.open(); Display display = dialogShell.getDisplay(); while (!dialogShell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } } catch (Exception e) { e.printStackTrace(); logger.error("error", e); } }
Quand je demande de fermer la dialog, j'appelle une méthode "close" comme celle qui suit :
Etant donné que les panneaux et autres boutons ont été créés en passant le dialogShell en paramètre; je suppose que je ne doit pas les désallouer moi-même.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public void close() { dialogShell.dispose(); }
Mais qu'en est-il des images ?
En fait, comment savoir ce qu'il écrire dans la méthode "close" de mes interfaces graphiques qui étendront des Dialog ou dans la méthode "dispose" surchargée des interfaces qui étendront des Composite ?
Comment être sur et certain que tout à bien été désallouer lorsqu'on ferme une Dialog ou qu'on désire effacer un Composite ?
Merci d'avance pour vos réponses !
Partager