Mega Code Archive

 
Categories / Java / SWT Jface Eclipse
 

Create a table (lazy)

/*  * example snippet: create a table (lazy)  *  * For a list of all SWT example snippets see  * http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/dev.html#snippets  */ import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.GC; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableItem; public class Snippet7 {    public static void main (String [] args) {   final Display display = new Display ();   final Image image = new Image (display, 16, 16);   GC gc = new GC (image);   gc.setBackground (display.getSystemColor (SWT.COLOR_RED));   gc.fillRectangle (image.getBounds ());   gc.dispose ();   final Shell shell = new Shell (display);   shell.setText ("Lazy Table");   shell.setLayout (new FillLayout ());   final Table table = new Table (shell, SWT.BORDER | SWT.MULTI);   table.setSize (200, 200);   Thread thread = new Thread () {     public void run () {       for (int i=0; i<20000; i++) {         if (table.isDisposed ()) return;         final int [] index = new int [] {i};         display.syncExec (new Runnable () {           public void run () {             if (table.isDisposed ()) return;             TableItem item = new TableItem (table, SWT.NONE);             item.setText ("Table Item " + index [0]);             item.setImage (image);           }         });       }     }   };   thread.start ();   shell.setSize (200, 200);   shell.open ();   while (!shell.isDisposed ()) {     if (!display.readAndDispatch ()) display.sleep ();   }   image.dispose ();   display.dispose (); } }