Java/SWT JFace Eclipse/Busy Indicator

Материал из Java эксперт
Перейти к: навигация, поиск

Demonstrates BusyIndicator

   <source lang="java">

//Send questions, comments, bug reports, etc. to the authors: //Rob Warner (rwarner@interspatial.ru) //Robert Harris (rbrt_harris@yahoo.ru) import org.eclipse.swt.*; import org.eclipse.swt.custom.*; import org.eclipse.swt.events.*; import org.eclipse.swt.layout.*; import org.eclipse.swt.widgets.*; /**

* This program demonstrates BusyIndicator
*/

public class BusyIndicatorTest {

 // The amount of time to sleep (in ms)
 private static final int SLEEP_TIME = 3000;
 // Labels for the button
 private static final String RUN = "Press to Run";
 private static final String IS_RUNNING = "Running...";
 /**
  * Runs the application
  */
 private void run() {
   Display display = new Display();
   Shell shell = new Shell(display);
   shell.setText("BusyIndicator Test");
   createContents(shell);
   shell.pack();
   shell.open();
   while (!shell.isDisposed()) {
     if (!display.readAndDispatch()) {
       display.sleep();
     }
   }
   display.dispose();
 }
 /**
  * Create the window"s contents
  * 
  * @param shell the parent shell
  */
 private void createContents(Shell shell) {
   shell.setLayout(new FillLayout());
   final Button button = new Button(shell, SWT.PUSH);
   button.setText(RUN);
   button.addSelectionListener(new SelectionAdapter() {
     public void widgetSelected(SelectionEvent event) {
       // Change the button"s text
       button.setText(IS_RUNNING);
       // Show the busy indicator
       BusyIndicator.showWhile(button.getDisplay(), new SleepThread(SLEEP_TIME));
       // Thread has completed; reset the button"s text
       button.setText(RUN);
     }
   });
 }
 /**
  * Application"s entry point
  * 
  * @param args the command line arguments
  */
 public static void main(String[] args) {
   new BusyIndicatorTest().run();
 }

} /**

* This class is a thread that sleeps the specified number of milliseconds
*/

class SleepThread extends Thread {

 private long ms;
 /**
  * SleepThread constructor
  * 
  * @param ms the number of milliseconds to sleep
  */
 public SleepThread(long ms) {
   this.ms = ms;
 }
 /**
  * Runs the thread
  */
 public void run() {
   try {
     sleep(ms);
   } catch (InterruptedException e) {}
 }

}

      </source>