【发布时间】:2020-04-07 09:29:35
【问题描述】:
当我第二次尝试打开子外壳时,发生 Widget is disposed 错误。 我正在尝试创建一个主外壳,然后使用菜单栏和子外壳来执行这些功能。
这里是 printStackTrace:
org.eclipse.swt.SWTException: Widget is disposed
at org.eclipse.swt.SWT.error(Unknown Source)
at org.eclipse.swt.SWT.error(Unknown Source)
at org.eclipse.swt.SWT.error(Unknown Source)
at org.eclipse.swt.widgets.Widget.error(Unknown Source)
at org.eclipse.swt.widgets.Widget.checkWidget(Unknown Source)
at org.eclipse.swt.widgets.Shell.close(Unknown Source)
at it.anabasibdg.viste.Main$2.widgetSelected(Main.java:108)
at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
at it.anabasibdg.viste.Main.open(Main.java:51)
at it.anabasibdg.viste.Main.main(Main.java:36)
代码如下:
MenuItem mntmInserimento = new MenuItem(menu_2, SWT.NONE);
mntmInserimento.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
if(cs1.isDisposed() == false) {
cs1.layout();
cs1.open();
}else {
cs1.open();
}
}
});
【问题讨论】: