ProgressBar进度条

此处有线程的相关操作——(尚未学习)

进度条通常要与线程同时使用,即后台运行一个线程,同时将后台程序运行的状态以进度条的方式显示出来。

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.layout.*;
public class G{
	public static void main(String[] args){
		final Display display=new Display();
		Shell shell=new Shell(display);
		shell.setText("ProgressBar进度条");
		
		shell.setLayout(new GridLayout());

		//创建一个进度条
		final ProgressBar progressBar=new ProgressBar(shell,SWT.HORIZONTAL);
		
		//设置最大值最小值
		progressBar.setMaximum(100);
		progressBar.setMinimum(0);
		//获得最大值最小值
		final int maximum=progressBar.getMaximum();
		final int minimum=progressBar.getMinimum();
		
		//创建一个线程
		Runnable runnable=new Runnable(){
			public void run(){
				for(int i=minimum;i<maximum;i++){//更新进度条的次数
					//尝试让让这个人先睡0.1秒,目的是让进度条的进度变慢,看得更加清楚一些
					try{
						Thread.sleep(100);
					}
					catch(InterruptedException e){
						
					}
					//UI线程更新进度条的值
					display.asyncExec(new Runnable(){
						public void run(){
							if(progressBar.isDisposed()){
								return;
							}
							else{
								progressBar.setSelection(progressBar.getSelection()+1);
							}
						}
					});
				}
			}
		};

		//启动线程
		new Thread(runnable).start();
		
		//打开窗口,进行窗口的显示
		shell.setSize(250,100);
		//shell.pack();
		shell.open();
		while(!shell.isDisposed()){
			//当窗口没有被释放的时候
			if(!display.readAndDispatch()){
				display.sleep();
			}		
		}
		display.dispose();
	}
}

猜你喜欢

转载自blog.csdn.net/grace_1203/article/details/80135920