关闭可运行的 JOptionPane

2023-11-30

我有这个可运行窗口:

 EventQueue.invokeLater(new Runnable(){
    @Override
    public void run() {
        op = new JOptionPane("Breaktime",JOptionPane.WARNING_MESSAGE);
        dialog = op.createDialog("Break");
        dialog.setAlwaysOnTop(true); 
        dialog.setModal(true);
        dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);      
        dialog.setVisible(true);
     }
 });

我是否可以在此处设置一个计时器,在 1 或 2 分钟内关闭它,而不是单击“确定”按钮?


是的,诀窍是得到Timer在你打电话之前开始setVisible...

public class AutoClose02 {

    public static void main(String[] args) {
        new AutoClose02();
    }

    private Timer timer;
    private JLabel label;
    private JFrame frame;

    public AutoClose02() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
                }

                JOptionPane op = new JOptionPane("Breaktime", JOptionPane.WARNING_MESSAGE);
                final JDialog dialog = op.createDialog("Break");
                dialog.setAlwaysOnTop(true);
                dialog.setModal(true);
                dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);

                // Wait for 1 minute...
                timer = new Timer(60 * 1000, new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent e) {
                        dialog.dispose();
                    }
                });
                timer.setRepeats(false);
                // You could use a WindowListener to start this
                timer.start();

                dialog.setVisible(true);
            }
        }
        );
    }

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关闭可运行的 JOptionPane 的相关文章

随机推荐

  • 如何提取 git 子目录并从中创建子模块?

    几个月前我开始了一个项目 并将所有内容存储在主目录中 在我的主目录 Project 中 有几个包含不同内容的子目录 项目 论文包含用 LaTeX 编写的文档 Project sourcecode RailsApp 包含我的 Rails 应用
  • 从原点拉取时“git pull”命令之间的差异?

    这些命令之间有什么区别 1 git pull 2 git pull origin 3 git pull origin master 4 git pull origin master 5 git pull origin HEAD master
  • 在 Outlook 插件中,如何检查我们是否处于撰写模式或阅读模式?

    我正在创建一个 Outlook 加载项并在 React 应用程序中使用 OfficeJS API 在那里 我想加载一组特定的撰写模式功能和另一组阅读模式功能 所以我的问题是 如何查看我当前处于哪种模式 如果您不想为读取和撰写模式创建两个单独
  • Android改变Material高程阴影颜色

    是否可以更改 xml 高程属性产生的阴影颜色 我希望通过代码动态改变阴影 我知道这个问题很老了 可能作者不再需要答案了 我会把它留在这里 以便其他人可以找到它 Lollipop 的高程系统不支持彩色阴影 但是 如果您需要彩色阴影 可以使用
  • C非阻塞键盘输入

    我正在尝试用 C 在 Linux 上 编写一个程序 该程序循环直到用户按下某个键 但不需要按键来继续每个循环 有没有一种简单的方法可以做到这一点 我想我可以用select 但这似乎需要很多工作 Alternatively is there
  • iPhone:Airplay SDK有什么用?

    有人可以解释一下什么是Airplay SDK 何时使用它 如何在程序中使用等详细信息 我希望它用于将视频从 iPhone 传输到电视 Thanks 隔空播放软件开发工具包实际上是一个针对iPhone Android Symbian的跨平台游
  • 如何将dict数据写入表格格式

    如何以下表输出格式写入以下数据 字典列表 data date datetime date 2011 2 8 user u xxx status u P date datetime date 2011 2 8 user u yyy statu
  • 从日期计算一年中的第几天

    我需要计算给定日期的天数 一年有 366 天 然而 每个月都有不同的值 我必须分配这些值 有没有比我现在的方法更快的方法 include
  • 如何让 Java 测试容器在 Docker 多阶段构建中工作?

    我有一个类似的问题使用 Maven 在 gitlab 中运行 Docker 测试容器 区别在于 我的脚本不是直接运行 mvn 而是运行 docker 多阶段构建 在 docker 映像内部运行测试 不幸的是 这似乎不适用于 PostgreS
  • 使用 LINQ 连接字符串

    写老派最有效的方法是什么 StringBuilder sb new StringBuilder if strings Count gt 0 foreach string s in strings sb Append s sb Remove
  • 尝试从字符串路径解析 Uri 时为 Null

    我正在用这个FileUtils类来处理Uri public class FileUtils private FileUtils private static final String TAG FileUtils private static
  • 不使用 jQuery 或 Ajax 的链式选择

    我正在使用 XAMPP Lite USB 版本 发现 jQuery 链接选择框脚本不起作用 因为它们依赖于 AJAX 而 AJAX 不适用于我的 XAMPP 我有两个选择框
  • 如何提高 Bootstrap 斑马条纹表的对比度

    我有以下带有斑马条纹的 twitter bootstrap 表 table class table table striped thead tr th Advantage th th Details th tr thead tbody tr
  • 当您从 C# P/Invoke 时,异步过程调用如何处理编组委托?

    我想知道当您在下面的特定情况下通过 P Invoke 将回调委托编组到 DLL 时 是否可能成为本机世界中托管线程管理问题的受害者 请参阅示例代码 这篇关于 Windows 中托管和非托管线程的 MSDN 文章 states 操作系统 Th
  • 减少字典列表的优雅方法?

    我有一个字典列表 每个字典都包含完全相同的键 我想找到每个键的平均值 并且我想知道如何使用reduce 或者如果不可能的话 使用另一种比使用嵌套更优雅的方式 fors 这是列表 accuracy 0 78 f measure 0 81693
  • C# 中什么是好的线程安全单例通用模板模式

    我有以下 C 单例模式 有什么方法可以改进它吗 public class Singleton
  • 从管道读取的 while read 循环后重置变量

    initiate read p Location s to look for bsp files in loc find loc name bsp while read do if f loc bz2 then continue else
  • 使用 C# 在 MySQL 中更新语句

    我一直在为我的工作场所构建一个小型库存系统 并偶然发现了一个我似乎无法修复的错误 private void Update string num string name string quant string location string
  • 静态常量字符串不会被初始化

    我有一些静态常量字符串作为我的 C 类的私有成员 我知道 h 中的声明和 cpp 实践中的定义 和初始化 在类构造函数中 我调用一个使用这些静态字符串的函数 令人惊讶的是 在构造函数中 字符串保持未初始化 空字符串 这会产生问题 有人可以指
  • 关闭可运行的 JOptionPane

    我有这个可运行窗口 EventQueue invokeLater new Runnable Override public void run op new JOptionPane Breaktime JOptionPane WARNING