import org.eclipse.jface.viewers.ILazyContentProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.Viewer; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; public class Snippet { public static void main(final String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.setLayout(new FillLayout()); final TableViewer v = new TableViewer(shell, SWT.VIRTUAL); v.setLabelProvider(new LabelProvider()); v.setUseHashlookup(true); v.setContentProvider(new ILazyContentProvider() { @Override public void updateElement(final int index) { v.replace("Item " + index, index); } @Override public void dispose() { } @Override public void inputChanged(final Viewer viewer, final Object oldInput, final Object newInput) { } }); v.setInput(null); v.setItemCount(12); v.getTable().setLinesVisible(true); v.setSelection(new StructuredSelection("Item 5"), true); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose(); } }