防止应用程序在获取网页时挂起



我的 swing 应用程序中有以下代码:

URL url = new URL("http://stackoverflow.com/");
InputStream is = url.openStream();

但是,使用 openStream 方法下载网页会使 swing 应用程序挂起,直到网页完全下载。如何防止这种情况/有哪些替代方案,以便我可以显示加载图像,直到网页完全下载?

在单独的线程中加载:

InputStream is = null;
Thread worker = new Thread() {
    // show "loading..."
    public void run() {
        try {
            URL url = new URL("http://stackoverflow.com/");
            is = url.openStream();
        } catch (InterruptedException ex) { ... }
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                // show "done" or remove "loading..."
            }
        });
    }
};
worker.start();

您可以使用多个线程,它们相互等待。

最新更新