import org.eclipse.swt.SWT; import org.eclipse.swt.custom.TableEditor; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.swt.widgets.TableItem; import org.eclipse.swt.widgets.Text; public class Snippet0124 { public static void main (String[] args) { Display display = new Display (); Shell shell = new Shell (display); shell.setLayout (new FillLayout ()); final Table table = new Table(shell, SWT.BORDER | SWT.MULTI); table.setLinesVisible (true); for (int i=0; i <3; i++) { TableColumn column = new TableColumn (table, SWT.NONE); column.setWidth(100); } for (int i=0; i <3; i++) { TableItem item = new TableItem (table, SWT.NONE); item.setText(new String [] {"" + i, "" + i , "" + i}); } final TableEditor editor = new TableEditor (table); editor.horizontalAlignment = SWT.LEFT; editor.grabHorizontal = true; table.addListener (SWT.MouseDown, new Listener () { public void handleEvent (Event event) { Rectangle clientArea = table.getClientArea (); Point pt = new Point (event.x, event.y); int index = table.getTopIndex (); while (index < table.getItemCount ()) { boolean visible = false; final TableItem item = table.getItem (index); for (int i=0; i