?? progressmonitordialogclass.java
字號:
/**
* @author: WangJinTao,MengQingChang2006
*/
package jfaceDialog;
import org.eclipse.jface.window.*;
import org.eclipse.swt.widgets.*;
import java.lang.reflect.*;
import org.eclipse.jface.operation.*;
import org.eclipse.core.runtime.*;
import org.eclipse.jface.dialogs.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.*;
public class ProgressMonitorDialogClass extends ApplicationWindow {
public ProgressMonitorDialogClass() {
// 部署窗口
super(null);
}
public void run() {
setBlockOnOpen(true);
// 打開窗體
open();
// 消除 display
Display.getCurrent().dispose();
}
protected void configureShell(Shell shell) {
super.configureShell(shell);
// 設置窗體大小
shell.setSize(300, 150);
// 設置窗體標題
shell.setText("ProgressMonitorDialog實例");
}
public Control createContents(Composite parent) {
Composite composite = new Composite(parent, SWT.NONE);
composite.setLayout(new GridLayout());
Button button = new Button(composite, SWT.PUSH);
button.setText("啟動 ProgressMonitorDialog");
GridData grid = new GridData(200, 25);
grid.verticalSpan = 20;
grid.horizontalIndent = 40;
button.setLayoutData(grid);
button.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
/*
* 通過IRunnableWithProgress接口實現處理的過程。
*/
IRunnableWithProgress runnableWithProgress = new IRunnableWithProgress() {
// run方法接受IProgressMonitor的對象monitor作為參數
public void run(IProgressMonitor monitor)
throws InvocationTargetException,
InterruptedException {
monitor.beginTask("操作正在進行.......", 10);
for (int i = 0; i < 10; i++) {
if (monitor.isCanceled()) {
monitor.done();
return;
}
// 執行監控
monitor.setTaskName("循環" + (i + 1) + "次");
// 進度前進一步
monitor.worked(1);
// 每次間隔1秒
Thread.sleep(1000);
}
// 進度執行到結束
monitor.done();
}
};
// 定義一個進度對話框
ProgressMonitorDialog dialog = new ProgressMonitorDialog(
getShell());
try {
/*
* 若將第二個參數true設置為false這對話框按鈕"Cancel"處于不可用狀態
*/
dialog.run(true, true, runnableWithProgress);
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
return parent;
}
public static void main(String[] args) {
new ProgressMonitorDialogClass().run();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -