Я построил зрителя таблицы, и я поставил следующие его методы:не в состоянии обновить зрителя 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)
Я отлажена getElements SampleContentProvider, он возвращает массив объектов ...
Я понятия не имею, почему это обновление вызов на зрителе случайна вызывает это исключение и, следовательно, не обновляет таблицу с модифицирована содержание.
Как вы изменяете таблицу? Вы должны ** не ** напрямую изменять «TableItem». –
Каждый элемент таблицы является модельным объектом для меня. Поэтому всякий раз, когда я нажимаю элемент таблицы и нажимаю кнопку «Изменить», появляется новое диалоговое окно, там я изменяю некоторые свойства объекта и сохраняю объект. Наконец, я делаю viewer.refresh(); – user1168608
Ну, ошибка в том, что 'TableItem.getData()' возвращает значение null, вы вообще вызываете 'TableItem.setData'? –