Hi
also ich habe einen Editor geschrieben bei dem man verschiedene Einstellungen vornehmen kann, dazu wird ein Dialog geöffnet, indem öffne ich wieder eine Dialog um Sachen hinzuzufügen. Ich bekomme bei Starten keinerlei Fehlermeldungen und öffnen lassen sich alle Dialoge auch. Nur wenn ich den letzt genannten zum zweiten mal öffnen will ohne vorher den Elterndialog geschlossen geschlossen und wieder geöffnet zu haben schmiert das ganze Programm ab. Als Fehlermeldung bekomme ich:
Allerdings nur wie gesagt wenn ich den Dialog zweimal direkt hintereinander aufrufe. Habe hier mal die Aufrufe der Dialoge:
Vielleicht kann mir da mal einer einen Hinweis geben.
also ich habe einen Editor geschrieben bei dem man verschiedene Einstellungen vornehmen kann, dazu wird ein Dialog geöffnet, indem öffne ich wieder eine Dialog um Sachen hinzuzufügen. Ich bekomme bei Starten keinerlei Fehlermeldungen und öffnen lassen sich alle Dialoge auch. Nur wenn ich den letzt genannten zum zweiten mal öffnen will ohne vorher den Elterndialog geschlossen geschlossen und wieder geöffnet zu haben schmiert das ganze Programm ab. Als Fehlermeldung bekomme ich:
Code:
Exception in thread "main" org.eclipse.swt.SWTException: Widget is disposed
Allerdings nur wie gesagt wenn ich den Dialog zweimal direkt hintereinander aufrufe. Habe hier mal die Aufrufe der Dialoge:
Code:
private Shell parent,optionDialog,addShell;
public void widgetSelected(SelectionEvent event)
{
this.parent = getParent();
optionDialog = new Shell(parent,SWT.DIALOG_TRIM|SWT.APPLICATION_MODAL);
final TabFolder tabDialog = new TabFolder(optionDialog,SWT.FLAT|SWT.SHADOW_ETCHED_IN);
......
optionDialog.open();
Display display = parent.getDisplay();
while(!optionDialog.isDisposed()){
if(!display.readAndDispatch())
display.sleep();
}
}
class addFormat implements SelectionListener{
addFormat(Properties prop, Composite composite){
addShell = new Shell(optionDialog,SWT.DIALOG_TRIM|SWT.APPLICATION_MODAL);
}
addShell.open();
saveBt.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent event){
addShell.dispose();
}
});
}
Vielleicht kann mir da mal einer einen Hinweis geben.