【问题标题】:JOptionPane.showMessageDialog Query?JOptionPane.showMessageDialog 查询?
【发布时间】:2011-07-08 10:21:02
【问题描述】:

这是场景。

我有在遇到错误时启动警报的代码。

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

【问题讨论】:

    标签: java swing joptionpane


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      如果你想让 GUI 表现得像 你点击了“X”然后你需要 将 windowClosing 事件发送到 窗户。 Closing An Application 的“ExitAction”允许你添加这个 菜单项或任何功能 轻松使用 Actions 的组件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-26
        • 1970-01-01
        • 1970-01-01
        • 2012-06-13
        • 2017-01-04
        • 1970-01-01
        相关资源
        最近更新 更多