0
我建立了一個表查看器,我已經設置了以下方法:無法刷新的JFace表查看
viewer.setContentProvider(new SampleContentProvider());
viewer.setLabelProvider(new SampleLabelProvider());
viewer.setInput(object);
SampleContentProvider實現IStructeredContentProvider
和
SampleLabelProvider實現ILabelProvider
在對錶格項目進行修改操作後刷新查看器時,會出現以下異常:
org.eclipse.core.runtime.AssertionFailedException: null argument:
at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:85)
at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:73)
at org.eclipse.jface.viewers.StructuredViewer.disassociate(StructuredViewer.java:640)
at org.eclipse.jface.viewers.AbstractTableViewer.internalRefreshAll(AbstractTableViewer.java:727)
at org.eclipse.jface.viewers.AbstractTableViewer.internalRefresh(AbstractTableViewer.java:649)
at org.eclipse.jface.viewers.AbstractTableViewer.internalRefresh(AbstractTableViewer.java:636)
at org.eclipse.jface.viewers.StructuredViewer$7.run(StructuredViewer.java:1487)
at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1422)
at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1383)
at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1485)
at org.eclipse.jface.viewers.ColumnViewer.refresh(ColumnViewer.java:537)
at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1444)
我已經調試SampleContentProvider的的getElements,它返回一個對象數組...
我不知道爲什麼觀衆這個刷新調用偶爾導致該異常,因此不具有修改更新表內容。
你如何修改表格?你必須**不要**直接改變'TableItem'。 – 2014-10-02 06:54:29
每個表項都是我的模型對象。所以每當我點擊一個表項並點擊修改按鈕,彈出一個新的對話框,在那裏我修改對象上的一些屬性並保存對象。最後我做一個viewer.refresh(); – user1168608 2014-10-02 06:57:46
那麼錯誤是因爲'TableItem.getData()'返回null,你是否調用'TableItem.setData'呢? – 2014-10-02 07:02:34