shell.setLayout(new RowLayout(SWT.VERTICAL));
final Table table = new Table(shell, SWT.VIRTUAL | SWT.BORDER);
table.addListener(SWT.SetData, new Listener() {
public void handleEvent(Event event) {
TableItem item = (TableItem) event.item;
int index = table.indexOf(item);
int start = index / PAGE_SIZE * PAGE_SIZE;
int end = Math.min(start + PAGE_SIZE, table.getItemCount());
for (int i = start; i < end; i++) {
item = table.getItem(i);
item.setText("Item " + i);