tanakahdaのプログラマ手帳

プログラミングとかソフトウェア開発とかの備忘録

ProgressMonitorで進捗率を表示する@Java Swing

package tanakahda.apps.progressmonitor;

import java.util.concurrent.TimeUnit;

import javax.swing.JFrame;
import javax.swing.ProgressMonitor;

public class Main {

    public static void main(String[] args) {

        var frame = new JFrame();
        frame.setSize(640, 480);
        frame.setVisible(true);

        // プログレスモニターを表示する
        new Thread(()->{

            ProgressMonitor pm = new ProgressMonitor(
                    frame,
                    "説明メッセージ:どの操作が監視されているかユーザーに示す",
                    "状態を説明する短いメモ",
                    0, 100);
            // 進捗モニターを表示するかどうかを決定するまでの待ち時間を設定します。
            pm.setMillisToDecideToPopup(100);
            // ポップアップが表示されるまでの時間を設定します。
            pm.setMillisToPopup(100);

            for (int i = 0; i <= 100; i++) {
                pm.setNote("進捗率 = " + i + "%");
                // プログレスバーの更新
                pm.setProgress(i);

                // プログレスモニターが可視できるように少し遅延させる
                try {
                    TimeUnit.MILLISECONDS.sleep(200);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }

            pm.setNote("終了");

        }).start();
    }
}