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,但如果用户不按“确定”,则无法处理对话框

4

2 回答 2

1

做你想做的事,你应该:

  • JOptionPane使用其构造函数之一创建实例
  • 调用createDialog此选项窗格以获取包含此选项窗格的对话框
  • 使用javax.swing.Timer实例在 2 分钟后触发动作事件
  • 向此计时器添加一个动作侦听器,该侦听器将关闭包含选项窗格的对话框
  • 显示包含选项窗格的对话框。
于 2011-07-08T10:27:06.703 回答
0

我不知道您所追求的是否可以完成,但是您不能将 JOptionPane 复制为 JFrame 并处理掉那个吗?您可以在此Previous SO Post中找到如何关闭 JFrame :

如果您希望 GUI 表现得好像您单击了“X”,那么您需要向窗口发送一个 windowClosing 事件。关闭应用程序的“退出操作”允许您将此功能添加到菜单项或任何使用操作的组件中。

于 2011-07-08T10:26:32.033 回答