2011-07-08 46 views
0

這是場景。JOptionPane.showMessageDialog查詢?

我有代碼,當遇到錯誤時引發Alram。

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分鐘,它關閉和消息MSG對話框應該消失。

我該如何獲取?

我能夠停止Alram,但無法處置該對話框,而無需用戶按下「OK」

回答

1

做你想做什麼,你應該:

  • 創建一個使用它的構造函數之一
  • 呼叫createDialog此選項窗格JOptionPane實例來獲取包含此選項窗格
  • 對話使用javax.swing.Timer實例爲了在2分鐘後觸發動作事件
  • 向此計時器添加一個動作偵聽器,該動作偵聽器將關閉包含t他的選項窗格
  • 顯示包含選項窗格的對話框。
0

我不知道你是什麼可以做後,卻不能代替你的複製JOptionPane作爲JFrame並且處理那個?你可以找到如何關閉在this上一頁SO發表一個JFrame:

如果你想在GUI表現得好像 你點擊「X」,那麼你需要 派遣的windowClosing事件的 窗口。 Closing An Application中的「ExitAction」允許您將此 功能添加到菜單項或任何使用Actions輕鬆實現的組件。