當我關閉主窗口時,出現錯誤,因爲它被丟棄。我試圖「過濾」(使用條件),但我無法讓它工作。Java如何防止小部件處置錯誤?
if(!Display.getDefault().isDisposed()){
Display.getDefault().syncExec(new Runnable() {
@Override
public void run() {
View.tableViewer.refresh();
setViewInfo();
}
});
}
錯誤:
Exception in thread "Thread-3" org.eclipse.swt.SWTException: Failed to execute runnable (org.eclipse.swt.SWTException: Widget is disposed) at org.eclipse.swt.SWT.error(SWT.java:4361) at org.eclipse.swt.SWT.error(SWT.java:4276) at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:196) at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:150) at org.eclipse.swt.widgets.Display.syncExec(Display.java:4687) at com.chriss.udp.Message.WRITE(Message.java:166) at com.chriss.udp.threads.ThreadConnect.run(ThreadConnect.java:55) at java.lang.Thread.run(Unknown Source) Caused by: org.eclipse.swt.SWTException: Widget is disposed
看起來像'TableViewer'(不是'Display')被放置,因爲Exception在'run'方法中被拋出。 – Baz