java: JOptionPane.showMessageDialogしても処理を止めない

プログラミング
スポンサーリンク




こんにちは、おみです。

JOptionPane.showMessageDialogでメッセージボックスを表示すると、OKボタンを押すまで処理がストップしてしまいます。

そのため、処理の開始時にメッセージボックスを表示すると一旦処理が止まってしまい効率が悪いです。

そんな問題を解決する方法を考えましたので、備忘録として残しておきます。

スポンサーリンク

方法

メッセージボックス表示処理をスレッド化する

スレッド化した処理は別の場所で行われるので、これをメッセージボックスに適用すると実処理とメッセージボックス表示処理は別の場所で行われ、処理が止まることはなくなります。

スレッド化の詳しい解説は、他のサイトで学んでください。

ソースコード

クラス

public class MessageDialogObject{
    // -----------------------------------
    // 内部変数定義
    // -----------------------------------
    /* メッセージ */ public JPanel pnlMessage = null;


    // コンストラクタ
    public MessageDialogObject(String message) {
        pnlMessage = new Panel();
        pnlMessage.setLayout(new BoxLayout(pnlMessage, BoxLayout.Y_AXIS));

        Label lbl = new JLabel(message);
        pnlMessage.add(lbl);
    }

    // メッセージを表示
    public void run() {
        JOptionPane.showMessageDialog(null, pnlMessage);
    }
}

使用例

...

// 開始メッセージを表示
MessageDialogObject start_mdo = new MessageDialogObject("処理を開始します");
start_mdo.start();

// 実処理
・
・
・

// 終了メッセージを表示
MessageDialogObject end_mdo = new MessageDialogObject("処理を終了します");
end_mdo.start();

 

コメント

タイトルとURLをコピーしました