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

📄 task.java

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

import org.eclipse.swt.widgets.Display;

public class Task {
    private TaskGUI gui; //得到前台界面对象

    private boolean stopFlag; //是否停止的标识

    /**
     * 构造函数,取得前台界面对象
     */
    public Task(TaskGUI taskGUI) {
        this.gui = taskGUI;
    }

    /**
     * 停止执行
     */
    public void stop() {
        stopFlag = true;
    }

    /**
     * 开始执行
     */
    public void start(int taskCount) {
        stopFlag = false; //将执行状态初始化成执行
        intsertConsoleText("后台线程开始执行任务......\n");
        for (int i = 0; i < taskCount; i++) {
            //一但发现执行状态为停止,则退出此循环
            if (stopFlag)
                break;
            //每隔0.1秒一次循环,用于模拟表示一个需时较长的任务
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            intsertConsoleText("任务" + (i + 1) + "处理完毕\n");
            //移动进度条的进度
            moveProgressBar(i);
        }
        intsertConsoleText("后台线程结束执行任务!!!!!!\n");
        //修改界面按钮状态
        setTaskGUIButtonState(true);
    }

    /**
     * 界面按钮状态
     */
    private void setTaskGUIButtonState(final boolean bFlag) {
        Display.getDefault().asyncExec(new Runnable() {
            public void run() {
                gui.setButtonState(bFlag);
            }
        });
    }

    /**
     * 进度条显示
     */
    private void moveProgressBar(final int progress) {
        Display.getDefault().syncExec(new Runnable() {
            public void run() {
                gui.getProgressBar().setSelection(progress);
            }
        });
    }

    /**
     * 插入文本
     */
    private void intsertConsoleText(final String str) {
        Display.getDefault().syncExec(new Runnable() {
            public void run() {
                gui.getConsoleText().insert(str);
            }
        });
    }
}

⌨️ 快捷键说明

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