首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >定时JDialog未在指定时间后关闭

定时JDialog未在指定时间后关闭
EN

Stack Overflow用户
提问于 2016-05-26 06:56:21
回答 1查看 59关注 0票数 0

我正在搜索时间上的JDialog,在经过指定的时间之后,它将消失,找到的代码正在运行。

代码语言:javascript
复制
            JFrame f = new JFrame();
            final JDialog dialog = new JDialog(f, "Test", true);
            Timer timer = new Timer(2000, new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    dialog.setVisible(false);
                    dialog.dispose();
                }
            });
            timer.setRepeats(false);
            timer.start();

            dialog.setVisible(true);

但是,在更改代码(如下所示)之后不起作用,即在经过指定的时间之后,模式不会关闭:

代码语言:javascript
复制
                JFrame f = new JFrame();
                final JDialog dialog = new JDialog(f, "Test", true);

                dialog.setVisible(true);

                Timer timer = new Timer(2000, new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        dialog.setVisible(false);
                        dialog.dispose();
                    }
                });
                timer.setRepeats(false);
                timer.start();

我不明白为什么会发生这种事。拜托,如果有人解释原因会有很大帮助。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-26 07:01:13

因为在第二个程序中,当对话框是模态时,dialog.setVisible(true);的调用是阻塞的,也就是说,执行在这里停止,直到您关闭对话框。因此,在手动关闭对话框之前,计时器不会启动。第一个程序是解决方案。为什么要做第二个?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37453638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档