2012-02-15 10 views
2

私のアプリケーションには単純なJFormとJDialogがあります。 JDialogボックスにはJProgressBarエリメントが含まれており、JDialogのメソッドとして、jprogress barを更新するには

と入力してプログレスバーを更新します。

私はJFormから私のJDialogの中にプログレスバーを更新しようとすると予想されるように、JProgressBarのは更新されません

例、エラー何ができるかを教えてください。

public class Status extends javax.swing.JDialog{ 
private javax.swing.JProgressBar prgProgress = new javax.swing.JProgressBar; 
..... 

public void updateProgress(int val){ 
      prgProgress.setValue(val); //prgProgress-> name of the JProgressBar 
     } 

..... 

} 

public class MyForm extends javax.swing.JInternalFrame { 
    Status s = new Status(); 
    s.setVisible(true); 
    for(int i=0; i<100; i++){ 
     s.updateProgress(i); 
    } 

} 

答えて

1

あなたはConcurency in Swingに問題がある、Swingは単一スレッドで、何もあなたはEDTの外にGUIを更新した場合、あなたはJProgressBarを更新するためのSwingWorkerを実装する必要がありhappendsありません、説明付きの例here

1

まず、私はあなたがJDialogJProgressBarを追加したことを示す上で、あなたのコードから見ることはできませんが、私はあなたがそうしていると仮定します。 第2に、JProgressBarの最大値を、コンストラクタまたはメンバ関数setMaximum()から設定していません。これは進歩を示さない理由であるかもしれません。

参照:

http://docs.oracle.com/javase/tutorial/uiswing/components/progress.html

+0

私はjprogressbarの最大値を設定しましたが、それでも同じ問題があります。 – Harsha

+0

質問を明確にするために、JDialogにJProgressBarが表示されました。つまり、進行状況がゼロのバーが表示されていますか? –

+0

はいプログレスバーがJDialog – Harsha

関連する問題