プログレスバーを表示する方法です
今回はNetBeans Platform右下部に表示されるプログレスバーについてです
まずはライブラリに「Progress API」を追加して下さい
ProgressHandle handle =
ProgressHandleFactory.createHandle("Sample Progress Bar");
ProgressHandleFactory.createHandle("Sample Progress Bar");
ProgressHandleFactoryクラスを使い、ProgressHandleクラスを生成します
createHandle()メソッドの第1引数は表示文字列になります
プログレスバーを動作させるには別スレッドの生成が必要になりますので、実際には下記のようになります
RequestProcessor.getDefault().post(new Runnable() {
public void run() {
public void run() {
ProgressHandle handle =
ProgressHandleFactory.createHandle("Sample Progress Bar");
try {
handle.start();
//以降に実際の処理を記述します
for(int i = 1; int < 100; i++) {
Thread.sleep(1000);
}
} catch (InterruptedException ex) {
Exceptions.printStackTrace(ex);
} finally {
handle.finish();
}
}
});
public void run() {
public void run() {
ProgressHandle handle =
ProgressHandleFactory.createHandle("Sample Progress Bar");
try {
handle.start();
//以降に実際の処理を記述します
for(int i = 1; int < 100; i++) {
Thread.sleep(1000);
}
} catch (InterruptedException ex) {
Exceptions.printStackTrace(ex);
} finally {
handle.finish();
}
}
});
RequestProcessorクラスはスレッドを実行するクラスと考えて下さい
今回は特に処理を記述していないので、Threadクラスのsleep()メソッドで一時的にスレッドを停止しています
この処理時間が短いと表示されないように見えますので、その場合は上記のようにsleep()メソッドを使うなどして時間を調整して下さい
また、キャンセル用の「×」ボタンを表示するにはCancellableオブジェクトを引数に割り当てて下さい
実装した箇所のみを抜粋すると以下のようになります
ProgressHandle handle =
ProgressHandleFactory.createHandle("Sample Progress Bar", public boolean cancel() {
return true;
});
ProgressHandleFactory.createHandle("Sample Progress Bar", public boolean cancel() {
return true;
});
進捗率を表示することも可能です
方法はProgressHandleクラスのstart()メソッドに総工程数を設定し、次にprogress()メソッドの引数に消化工程数を設定します
上記「×」(キャンセルボタン)と進捗率を表示する実装は下記の通りです
RequestProcessor.getDefault().post(new Runnable() {
public void run() {
public void run() {
ProgressHandle handle =
ProgressHandleFactory.createHandle("Sample Progress Bar", public boolean cancel() {
return true;
}););
try {
handle.start();
//以降に実際の処理を記述します
Thread.sleep(5000);
} catch (InterruptedException ex) {
Exceptions.printStackTrace(ex);
} finally {
handle.finish();
}
}
});
public void run() {
public void run() {
ProgressHandle handle =
ProgressHandleFactory.createHandle("Sample Progress Bar", public boolean cancel() {
return true;
}););
try {
handle.start();
//以降に実際の処理を記述します
Thread.sleep(5000);
} catch (InterruptedException ex) {
Exceptions.printStackTrace(ex);
} finally {
handle.finish();
}
}
});
上記のようにNetBeansのAPI(Progress API)を追加するだけで簡単にProgress Barが作れます
ぜひお試しください
0 件のコメント:
コメントを投稿