Mega Code Archive

 
Categories / Java / SWT Jface Eclipse
 

SWT and Thread

/******************************************************************************  * Copyright (c) 1998, 2004 Jackwind Li Guojie  * All right reserved.   *   * Created on Oct 26, 2003 2:45:03 PM by JACK  * $Id: SyncExecExample.java,v 1.1 2003/12/22 12:07:54 jackwind Exp $  *   * visit: http://www.asprise.com/swt  *****************************************************************************/ import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; /**  * syncExec Example.   */ public class SyncExecExample {   public static void main(String[] args) {     final Display display = new Display();     Shell shell = new Shell(display);          final Runnable print = new Runnable() {       public void run() {         System.out.println("Print from thread: \t" + Thread.currentThread().getName());       }     };          final Thread applicationThread = new Thread("applicationThread") {       public void run() {         System.out.println("Hello from thread: \t" + Thread.currentThread().getName());         display.syncExec(print);         System.out.println("Bye from thread: \t" + Thread.currentThread().getName());       }     };          shell.setText("syncExec Example");     shell.setSize(300, 100);          Button button = new Button(shell, SWT.CENTER);     button.setText("Click to start");     button.setBounds(shell.getClientArea());     button.addSelectionListener(new SelectionListener() {       public void widgetDefaultSelected(SelectionEvent e) {       }       public void widgetSelected(SelectionEvent e) {         applicationThread.start();       }     });          shell.open();                   while(! shell.isDisposed()) {       if(! display.readAndDispatch()) {// If no more entries in event queue         display.sleep();       }     }          display.dispose();      } }