package demotest;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.ProgressBar;
import org.eclipse.swt.widgets.Shell;
/**
*
* @author mositure
*
*/
public class ProgressBarSample {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//创建一个display对象
final Display display = new Display();
//shell是程序的主窗体
Shell shell=new Shell(display);
//设置窗体大小
shell.setSize(400, 400);
//设置主窗体的标题
shell.setText("进度条组件");
//创建滚动条对象
final ProgressBar progressBar = new ProgressBar(shell, SWT.HORIZONTAL);
progressBar.setSize(300, 60);
progressBar.setMaximum(100);
progressBar.setMinimum(0);
final int maxinum = progressBar.getMaximum();
final int minimum = progressBar.getMinimum();
Runnable runnable = new Runnable(){
@Override
public void run() {
for(int i=minimum;i<maxinum;i++){
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
//让UI线程更新滚动条的值
display.syncExec(new Runnable() {
@Override
public void run() {
if(progressBar.isDisposed()){
return;
}
progressBar.setSelection(progressBar.getSelection()+1);
}
});
}
}
};
new Thread(runnable).start();
//打开主窗体
shell.open();
//如果主窗体没有关闭
while(!shell.isDisposed()){
//如果display不忙
if(!display.readAndDispatch()){
//休眠
display.sleep();
}
}
//销毁display
display.dispose();
}
}