【初心者】Java質問・相談スレッド108【大歓迎】
レス数が900を超えています。1000を超えると表示できなくなるよ。
0919デフォルトの名無しさん
2007/11/24(土) 13:10:42Java6でOKならばSwingTimerは使わない方がいい。
変りにSwingWorker という並行処理専用のクラスを使用すると、スレッドをほとんど意識せずに裏方処理をさせられる。
class UpDownWorker extends SwingWorker {
@Override
public Object doInBackground() {
// ここに並行に処理をおこなう内容を記述
// ループさせながら順次アニメーションさせるなど
// このメソッドはEDTで実行されるので直接コンポーネントを操作してOK }
@Override
protected void done() {
// 処理が終わったときに呼ばれるメソッド
// ボタンをアクティブに戻すとか
}
}
使う側
UpDownWorker worker = new UpDownWorker();
worker.execute(); // ←処理が終了までブロックされずに、すぐ制御が戻る
ちなみにworkerからは実行結果を取得したり、例外が発生したらそれを検知したり、キャンセルをかけられたりと色々な機能があるよ。
レス数が900を超えています。1000を超えると表示できなくなるよ。