📄 task.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 + -