swingコンポーネント->JProgressBar
JProgressBarは一部分または全体に色を塗ることができる矩形のコンポーネントですが、作業時間の進捗状態を表すために使われます。

コンストラクタ(抜粋)
ProgressBar()
 デフォルト(文字列は完了した作業割合、水平に配置)のJProgressBarオブジェクトを生成します。
ProgressBar(int ori)
 プログレスバーの方向を指定してJProgressBarオブジェクトを生成します。
  垂直・・JProgressBar.VERTICAL 
  水平・・JProgressBar.HORIZONTAL
ProgressBar(int min,int max)
 最小値minと最大値maxを指定してJProgressBarオブジェクトを生成します。
 
メソッド(抜粋)
int getValue()
 プログレスバーの値を取得します。
void setValue(int value)
 プログレスバーの値を設定します。
double getPercentComplete()
 プログレスバーの完了したパーセントを返します。
String getString()
 進捗文字列の現在の値を返します。
void setMaximum(int max)
 プログレスバーの最大値を設定します。
void setMinimum(int min)
 プログレスバーの最小値を設定します。
int getMaximum()
 プログレスバーの最大値を取得します。
int getMiniimum()
 プログレスバーの最小値を取得します。
void addChageListener(ChangeListener l)
 ChangeListenerを設定します。

progressSample.java

import java.applet.*;  
import java.awt.*;  
import java.awt.event.*;  
import javax.swing.*;  
import javax.swing.event;  
public class progressSample extends JApplet implements ActionListener {  
   Container contentPane;  
   JButton btn = new JButton("スタート");  
   JProgressBar pgsBar;  
  Thread th;  
  public void init() {  
     contentPane = getContentPane();  
     contentPane.setLayout(new FlowLayout());  
     contentPane.add(btn);  
     btn.addActionListener(this);  
     pgsBar = new JProgressBar(0,100);  ← @
     pgsBar.setValue(0);  ← A
     pgsBar.setStringPainted(true);  ← B
  contentPane.add(pgsBar);  
   }  
 public void actionPerformed(ActionEvent e) {  
  if(th==null){ ← C
   th = new sampleThread();  
   th.start();  
  }  
  }  
 class sampleThread extends Thread{  ← D
  public void run(){  
   for(int i=0; i<=100; i++){  
    try{  
      sleep(100);  
     }catch(Exception e){}  
      pgsBar.setValue(i);  
   }  
   th = null;  
  }  
 }  
}  
   
@インスタンスの生成  pgsBar = new JProgressBar(0,100);
 最小値0、最大値100としてJProgressBarのインスタンスを生成しています。
ApgsBar.setValue(0);
 プログレスバーの初期値を0に設定しています。
BpgsBar.setStringPainted(true);
  プログレスバーが進捗文字列を表示するように設定しています。
  ※デフォルトでは進捗文字列はfalseに設定されており、表示されません。
C if(th==null){
   th = new sampleThread();
   th.start();
  }
 
thがnullであれば、sampleThreadクラスをインスタンス化し、スレッドを作成、開始します。
Dclass sampleThread extends Thread{ ・・・ };
 sampleThreadクラスを定義しています。100までの繰り返しの中でiの値をプログレスバーにセットしています。繰り返しが終わると、新たにスレッドを作成できるようにth=nullとしています。
もどる