⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 progressbar3.java

📁 Eclipse从入门到精通源代码/第二篇 SWT_JFace篇(6-16章)
💻 JAVA
字号:
/**
 * @作者:陈刚
 * @Email:glchengang@yeah.net
 * @Blog:http://blog.csdn.net/glchengang
 */
package swt;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.ProgressBar;
import org.eclipse.swt.widgets.Shell;

/**
 * 用SWT多线程的知识对ProgressBar1.java进行改进(第二种修改方式)
 */
public class ProgressBar3 {
    public static void main(String[] args) {
        final Display display = Display.getDefault();
        final Shell shell = new Shell();
        shell.setSize(327, 253);
        shell.setText("SWT Application");
        //------------------新插入的界面核心代码------------------------

        shell.setLayout(new RowLayout());
        //创建一个滑动条。这里用平滑型式样SWT.SMOOTH,默认是方格型。
        final ProgressBar progressBar = new ProgressBar(shell, SWT.SMOOTH);
        progressBar.setMinimum(0); //最小值
        progressBar.setMaximum(100);//最大值
        //创建一个GO按钮
        Button button = new Button(shell, SWT.BORDER);
        button.setText("GO");
        button.addSelectionListener(new SelectionAdapter() {
            //改进:将处台另开一个线程(第二种修改方式)
            public void widgetSelected(SelectionEvent e) {
                new Thread() {
                    public void run() {
                        //每次循环progressBar前进一格
                        for (int i = 1; i < 11; i++) {
                            try {
                                Thread.sleep(1000);
                            } catch (Throwable e2) {
                            } //间隔一秒

                            final Integer i_copy = new Integer(i);
                            display.asyncExec(new Runnable() {
                                public void run() {
                                    progressBar.setSelection(i_copy.intValue() * 10);
                                }
                            });
                        }
                    }
                }.start();
            }
        });

        //------------------END---------------------------------------------
        shell.layout();
        shell.open();
        while (!shell.isDisposed()) {
            if (!display.readAndDispatch())
                display.sleep();
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -