我想清除所有節點和連接中的Zest圖,以便我可以使用新的節點和連接重新繪製Graph。要意識到,我寫了下面的方法嘗試清除Zest圖
public void clearGraph(Graph graph) {
Object[] objects = graph.getConnections().toArray() ;
for (int i = 0 ; i < objects.length; i++){
GraphConnection graCon = (GraphConnection) objects[i];
graCon.dispose();
//graCon.setVisible(false);
}
objects = graph.getNodes().toArray();
for (int i = 0 ; i < objects.length; i++){
GraphNode graNode = (GraphNode) objects[i];
graNode.dispose();
//graNode.setVisible(false);
}
}
這崩潰我prorgam一個錯誤
異常線程 「main」 org.eclipse.swt.SWTException:小工具設置
作爲一種解決方法,我嘗試將節點和連接設置爲不可見工作,但不可見對象似乎弄亂了我的Zest佈局,所以如果有辦法實際處理節點和連接,我會這樣做。
以下是錯誤按摩
Exception in thread "main" 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.Item.getText(Unknown Source)
at com.mycom.timelineview.views.IndicatorFactorVisualisationView$2.mouseDoubleClick(IndicatorFactorVisualisationView.java:221)
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 com.mycom.timelineview.views.IndicatorFactorVisualisationView.indicatorFactorWindow(IndicatorFactorVisualisationView.java:249)
at com.mycom.timelineview.views.IndicatorFactorVisualisationView.<init>(IndicatorFactorVisualisationView.java:71)
at com.mycom.timelineview.views.SpiderWebMouseListener.chartMouseClicked(SpiderWebMouseListener.java:102)
at org.jfree.experimental.chart.swt.ChartComposite.mouseDown(ChartComposite.java:1621)
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 com.mycom.timelineview.views.SpiderWebView.createPartControl1(SpiderWebView.java:622)
at com.mycom.timelineview.views.InformationPlatformAppView2$7.handleEvent(InformationPlatformAppView2.java:628)
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 com.mycom.timelineview.views.InformationPlatformAppView2.main(InformationPlatformAppView2.java:1330)
編輯:感謝巴茲我發現我錯了。鼠標監聽器不得不在我之前設置的圖形節點中搜索文本,所以當然程序必須崩潰。我改變了我的代碼以避免它,現在Baz提出的方法可以完美運行。
你吃過看看這個:https://www.eclipse.org/forums/index.php/t/79464/? – Baz
我用一個很好的例子更新了我的答案。 – Baz