2

私のswingアプリケーションには次のコードがあります。

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

ただし、openStreamメソッドを使用してWebページをダウンロードすると、Webページが完全にダウンロードされるまでswingアプリケーションがハングします。これを防ぐにはどうすればよいですか/代替手段は何ですか?Webページが完全にダウンロードされるまで読み込み中の画像を表示できますか?

4

2 に答える 2

3

互いに待機する複数のスレッドを使用できます。

于 2012-05-20T16:16:12.897 に答える
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();
于 2012-05-20T16:18:23.047 に答える