Hey,
ich hab eine Shell mit einem Button, bei dessen Klick wiederum eine weitere Shell angezeigt werden soll.
Hier wie ich diese zweite Shell einmalig erstelle:
Der Listener des besagten Buttons:
Also wenn ich einmal auf den Button Klick erscheint das Fenster und alles ist gut.
Wenn ich es aber schließe mit dem X oben rechts und wieder auf den Button klicke bekomme ich folgende Exception:
Die letzte Zeile entspricht eben oben im Code der Zeile mit dem *.
Wenn ich das abändere in:
dann bekomme ich zwar keine Exception mehr aber das Fenster erscheint trotzdem nicht nochmal.
Also wie blendet man denn in SWT korrekt Fenster aus und wieder ein?
Danke lg
ich hab eine Shell mit einem Button, bei dessen Klick wiederum eine weitere Shell angezeigt werden soll.
Hier wie ich diese zweite Shell einmalig erstelle:
Java:
// parent ist die andere, ursprüngliche Shell
dialog = new Shell(parent, SWT.APPLICATION_MODAL | SWT.SHELL_TRIM);
Der Listener des besagten Buttons:
Java:
@Override
public void handleEvent(Event e) {
dialog.open(); // *
Display display = parent.getDisplay();
while (!dialog.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
}
Also wenn ich einmal auf den Button Klick erscheint das Fenster und alles ist gut.
Wenn ich es aber schließe mit dem X oben rechts und wieder auf den Button klicke bekomme ich folgende Exception:
org.eclipse.swt.SWTException: Widget is disposed
at org.eclipse.swt.SWT.error(SWT.java:3884)
at org.eclipse.swt.SWT.error(SWT.java:3799)
at org.eclipse.swt.SWT.error(SWT.java:3770)
at org.eclipse.swt.widgets.Widget.error(Widget.java:463)
at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:336)
at org.eclipse.swt.widgets.Shell.open(Shell.java:1186)
at epf_xpdl_import.util.Log$1.handleEvent(Log.java:63)
Die letzte Zeile entspricht eben oben im Code der Zeile mit dem *.
Wenn ich das abändere in:
Java:
if(!dialog.isDisposed()){
dialog.open();
}
dann bekomme ich zwar keine Exception mehr aber das Fenster erscheint trotzdem nicht nochmal.
Also wie blendet man denn in SWT korrekt Fenster aus und wieder ein?
Danke lg