2011-07-31 6 views
1

JLabelImageIconで更新する直前にテキストを表示するのに問題があります。高価な操作の前にJLabelにテキストを表示させる

固定サイズのJLabelを使用しているため、テキストまたは完全に収まるイメージが表示されます。テキスト "Loading ..."を表示させ、その直後にURLから画像をロードしてテキストを置き換えるようにしています。

... 

public void setImage() 
{ 
    URL url = new URL("http://www.website.com/pathtoimage/image.png"); 

    jLabel1.setIcon(null); 
    jLabel1.setText("Loading..."); 

    ImageIcon ii = new ImageIcon(url); 
    jLabel1.setIcon(ii); 
} 

... 

(例外が適切に捕捉され、必要なすべてのインポートが行われ、画像が存在し、有効であることを仮定する)

上記のコードは、テキストを表示しません。何も起こらないのは、イメージがダウンロードされて表示されるとアプリケーションがハングすることです。 JLabelをイメージに置き換える前にスウィングを強制的に更新するにはどうすればよいですか?それとも、これを達成するための別のより効率的な方法を知っていますか?

答えて

4

SwingWorkerを見てください、ここでGUI /スレッド/バックグラウンドスレッド(私がリンクされ、最初のページだけでなく、次のものだけではなく)Event Dispatch Thread読ん;)

+0

これは、最適なソリューションです。 1 + –

+0

はい、ありがとう、それはすべて良いです! :) – Doddy

関連する問題