Java Swing:模态加载屏幕?

5
我有一个Java Swing应用程序,它会加载一个网页。有时,网页的加载时间取决于用户的网络连接速度,可能需要一些时间。

我希望在页面加载完成之前,能够阻止这个框架的加载。

2个回答

6
最简单的选项是弹出模态对话框:
JDialog modalDialog = new JDialog(frame, "Busy", ModalityType.DOCUMENT_MODAL);
modalDialog.setSize(200, 150);
modalDialog.setLocationRelativeTo(frame);
modalDialog.setVisible(true);

你可能想在其中加入一个进度条。

0

这是可能的... 我找到了一个解决方案。

我也遇到过这个问题。

当您创建模态对话框时,如另一个答案所建议,只有用户可以关闭它。
只有在加载结束时才能使其自行处理,这才有用。

[更新]

这是我的对话框类

public final class Loading extends javax.swing.JDialog {

    /*
     * Creates new form Loading
     * @param parent
     * @param modal
     */
    public Loading(java.awt.Frame parent,boolean modal) {
        super(parent, modal);
        initComponents();
    }

    private void formWindowActivated(java.awt.event.WindowEvent evt) {                                     
        //Code to execute while loading
        this.dispose();
    }                                                       
}

在这里你可以这样调用它。

Loading l = new Loading(this/*In case you class is a frame, null otherwise*/, true);
l.setVisible(true);

执行加载代码后,它会关闭并继续在父类上执行代码。

您可以为加载任务提供一个回调函数,以便在对话框上调用dispose方法。 - Daniel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接