Ich bin ein neuerer in SWT und JFace, vor kurzem habe ich JFace tableviewer in meinem Projekt verwendet. Und ich muss Elemente durch eine Lösch-Schaltfläche löschen. Aber es funktioniert nicht, wenn ich den Tableviewer nach dem Löschen aktualisiere. Ich möchte den reason.My Code wissen, zeigt der folgende Liste:JFace tableviewer item delete kann nicht aktualisiert werden
btnDeleteConstraint.addSelectionListener(
new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
ISelection selection = tableViewer.getSelection();
logger.debug("datatype selected");
if (selection != null || selection instanceof
IStructuredSelection) {
IStructuredSelection sel = (IStructuredSelection) selection;
Iterator iterator = sel.iterator();
while(iterator.hasNext()) {
Object obj = iterator.next();
tableViewer.remove(obj);
}
tableViewer.refresh();
}
}
});
und ich verwende eine andere Methode namens update() Eingang zu setzen und die Tabelle am Ende aktualisieren:
public void update()
{
tableViewer.setInput(DataTypeFactory.
getInstance().getCastList(wizard.getSourceInfo().getDBType()));
tableViewer.refresh();
}
Also muss ich die Tabelle nicht jedes Mal aktualisieren, wenn ich sie modifiziere, ist das korrekt? – khunnie
Nein, Sie müssen nicht aktualisieren. Sie sollten jedoch die Daten des Inhaltsanbieters mit der angezeigten Tabelle synchronisieren. –