如何在swt中显示15秒的进度条

时间:2014-12-22 05:04:10

标签: java swt

SWT更新..我必须编写一个显示进度条的方法。如果我考虑方法。我应该将时间和界限作为方法的参数传递。

    package ProgressViewer;
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.layout.GridLayout;
    import org.eclipse.swt.widgets.MessageBox;
    import org.eclipse.swt.widgets.ProgressBar;
    import org.eclipse.swt.widgets.Shell;

    public class PBMethod 
    {
        private static Shell shell;

        public static void Pv7( Shell shell2,final int num,final int xA,final int xB,final int xH,final int xW) 
        {
            shell=shell2;

            final ProgressBar bar = new ProgressBar(shell, SWT.NONE);
            bar.setSize(1500, 1000);    

            shell.setLayout(new GridLayout()); 
            shell.setSize(1500, 1000);

            final Thread thread = new Thread()
            {
                public void run() 
                {   
                    for(int i=0; i<=num; i++) 
                    {
                        final int value = i;
                        try 
                        {
                            Thread.sleep(50);       
                        } 
                        catch (Exception e){}
                        shell.getDisplay().asyncExec(new Runnable()
                        {
                            public void run() 
                            {
                                bar.setBounds(xA,xB,xH,xW);
                                bar.setSelection(value);
                            }
                        });
                    }
                    shell.getDisplay().syncExec(new Runnable()
                    {
                        public void run() 
                        {
                            bar.dispose();
                            MessageBox dialog1 = new MessageBox(shell, SWT.NONE| SWT.OK| SWT.CANCEL);
                            dialog1.setText("Information");
                            dialog1.setMessage("Saved Successfully");
                            dialog1.open(); 
                        }
                    });
                }
            };
            thread.start();
        }
    }

这里上面的方法是传递边界和百分比..但不是时间..进度条应显示10秒..或15秒..我应该只给参数..

但是在发送的代码中,第二个参数用于进度条的完成百分比。 应该在进度查看器显示的时间传递参数,例如, 10秒10秒。如果我们想将其更改为15,那么参数值应该只会发生变化..

帮助会很感激!!!

1 个答案:

答案 0 :(得分:0)

实际上,建立进度条是为了显示任务的进度,任务完成时间总是不同的,因此没有这样的方法需要花时间作为参数。 即使你找到了这样做的方法,也绝不是一个好习惯。