0

これがシナリオです。

エラーが発生したときにアラームを開始するコードがあります。

AudioAlarm t = new AudioAlarm(song);
    try {
        Thread.sleep(2000);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    System.out.println("Awake");
    t.start();
    setRunnung(true);
    JOptionPane.showMessageDialog(null, "Alarm ...", "Alarm", JOptionPane.OK_OPTION);
    AudioAlarm.setLoop(false);
    System.out.println("Alarm Acknowledged ...");

このロジックをこのように再設計したいと思います。

ユーザーがアラームを 2 分間確認しないと、アラームがオフになり、メッセージ メッセージ ダイアログが表示されなくなります。

どうすれば入手できますか?

Alram を停止することはできますが、ユーザーが [OK] を押さないとダイアログを破棄できません

4

2 に答える 2

1

やりたいことを行うには、次のことを行う必要があります。

  • JOptionPaneコンストラクターの 1 つを使用してインスタンスを作成する
  • このオプション ペインを呼び出しcreateDialogて、このオプション ペインを含むダイアログを取得します
  • javax.swing.Timer2 分後にアクション イベントを発生させるためにインスタンスを使用する
  • オプションペインを含むダイアログを閉じるアクションリスナーをこのタイマーに追加します
  • オプション ペインを含むダイアログを表示します。
于 2011-07-08T10:27:06.703 に答える
0

あなたがしたいことができるかどうかはわかりませんが、代わりに JOptionPane を JFrame として複製し、それを処分することはできませんか? このPrevious SO Postで JFrame を閉じる方法を見つけることができます。

「X」をクリックしたかのように GUI を動作させたい場合は、windowClosing イベントをウィンドウにディスパッチする必要があります。Closing An Applicationの「ExitAction」を使用すると、この機能をメニュー項目またはアクションを使用する任意のコンポーネントに簡単に追加できます。

于 2011-07-08T10:26:32.033 に答える