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

时间:2012-05-20 16:14:03

标签: java swing

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

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

但是,使用openStream方法下载网页会使swing应用程序挂起,直到网页完全下载为止。如何防止这种/什么是替代品,所以我可以显示加载图像,直到网页完全下载?

2 个答案:

答案 0 :(得分:3)

您可以使用多个相互等待的线程。

答案 1 :(得分:3)

加载一个单独的线程:

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();