JOptionPane.showMessageDialog查询?

时间:2011-07-08 10:21:03

标签: java swing joptionpane

这是情景。

我有代码,当遇到错误时会启动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分钟)未确认警报,则会关闭并且消息消息对话框将消失。

我怎样才能获得这个?

我可以停止Alram,但无法在没有用户按“OK”的情况下丢弃对话框

2 个答案:

答案 0 :(得分:1)

要做你想做的事,你应该:

  • 使用其构造函数
  • 创建JOptionPane实例
  • 在此选项窗格上调用createDialog以获取包含此选项窗格的对话框
  • 使用javax.swing.Timer实例以便在2分钟后触发操作事件
  • 向此计时器添加一个动作侦听器,该侦听器将关闭包含选项窗格
  • 的对话框
  • 显示包含选项窗格的对话框。

答案 1 :(得分:0)

我不知道你所做的事情是否可以完成,但你不能将JOptionPane复制为JFrame并处理掉那个吗?您可以在this上一篇SO帖子

上找到关闭JFrame的方法
  

如果您希望GUI的行为就像   你点击了“X”然后你需要   发送一个windowClosing事件给   窗口。 Closing An Application中的“ExitAction”允许您添加此项   菜单项或任何菜单项的功能   容易使用Actions的组件。