簡體   English   中英

JOptionPane.showMessageDialog 查詢?

[英]JOptionPane.showMessageDialog Query?

這是情景。

我有遇到錯誤時啟動警報的代碼。

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,但如果用戶不按“確定”,則無法處理對話框

做你想做的事,你應該:

  • 使用其構造函數之一創建JOptionPane實例
  • 在此選項窗格上調用createDialog以獲取包含此選項窗格的對話框
  • 使用javax.swing.Timer實例在 2 分鍾后觸發動作事件
  • 向此計時器添加一個動作偵聽器,該偵聽器將關閉包含選項窗格的對話框
  • 顯示包含選項窗格的對話框。

我不知道您所追求的是否可以完成,但是您不能將 JOptionPane 復制為 JFrame 並處理掉那個嗎? 您可以在Previous SO Post 上找到如何關閉 JFrame:

如果您希望 GUI 的行為就像您單擊了“X”,那么您需要向 Window 發送一個 windowClosing 事件。 關閉應用程序的“退出操作”允許您將此功能添加到菜單項或任何使用操作的組件中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM