Salut,
j'ai cherché sur internet mais je n'ai pas trouvé une réponse claire. Espérant la trouvée ici :).
j'ai une application de type plugin qui ajoute un bouton dans un menu dans Eclipse. En cliquant sur ce bouton une fenêtre s'ouvre, voici le code de création de cette fenêtre:
"report" est un bouton permettant de lancer une autre fenêtre; la fenêtre de génération de rapport.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 final Display display = PlatformUI.getWorkbench().getDisplay(); final Shell shell = new Shell(display, SWT.APPLICATION_MODAL | SWT.CLOSE | SWT.MAX | SWT.RESIZE); ... final Button report = new Button(composite, 0); report.setText("report"); report.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent event) { Report.reportShell(shell); } }); ... while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } }
Report.reportShell(shell) est la méthode permettant la création de la fenêtre de génération du rapport.
Voici le code de la fenêtre de génération:
Cette dernière contient un bouton permettant la génération d'un rapport XML.Tout fonctionne bel et bien mais après la fermeture de la fenêtre de génération de rapport. une exception a été levée:Code:
1
2
3
4
5
6
7
8 public static final void reportShell(final Shell parent) { final Shell reportShell = new Shell(parent); ... reportShell.pack(); reportShell.open(); }
org.eclipse.swt.SWTException: Widget is disposed
...
La ligne qui pose le problème est : if (!display.readAndDispatch()) du boucle:
Est-ce quelqu'un peut m'aider concernant ce point?Code:
1
2
3
4
5
6
7
8 while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } }
Merci d'avance :)