2012-04-19 10 views
1

を実行している間、私は(あるため、いくつかの進捗状況)この値のに私を与えるスレッドを実行している間、私は、パネル内のJSliderの値を変更したい変更JProgressBarの値、スレッドが

だから私は計算しますスレッドの進捗値を取得し、GETメソッドを使用してパネル内の値をフェッチし、プログレスバーに設定します。

デバッグ後、値はありますが、EDIT:[JProgressBar]はUIを変更しません。

一部コード:

while(_thread.isAlive()) { 
pb_calc.setValue(_thread.getVal()); 
pb_calc.updateUI(); 
} 
+1

代わりに 'JSlider'の' JProgressBar'を使用し、内側からBackground taksを呼び出すことになります。 –

+0

申し訳ありませんが、私はプログレスバーを持っています - 見た目の編集 –

答えて

4
  • updateUIを使用いけないが、この方法はLook and FeelUIManagerのために予約され

    Background Tasksからの出力はよりチュートリアルConcurency in Swingに、invokeLaterにラップされるべきである
  • 良くはSwingWorkerまたはRunnable#Thread

+0

あなたは私に何を意味するのかを教えていただけますか? –

+1

@Christian 'fuzi' Orglerはここに私のプロフィールをチェックして、私の最後のポイントに例があります – mKorbel

+2

@ Christian'fuzi'Orgler http://stackoverflow.com/questions/8916721/java-swing-update-label/8917565#8917565 is例。 Swingチュートリアルにも含まれています(JProgressBarクラスのjavadocのリンクに従ってください...便利です) – Robin