package lecture.swing;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JProgressBar;
import javax.swing.Timer;

/** JProgressBarのサンプル Java Swing */
public class PartsProgressBar extends JFrame implements ActionListener {

    private JProgressBar bar;
    private Timer timer;

    public static void main(String[] args) {
    new PartsProgressBar();
  }

  private PartsProgressBar() {
    super("JProgressBar");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setLayout(new BorderLayout());
    //
    // 0~100のバーを生成する
    bar = new JProgressBar();
    // 進捗度合いを表示する..
    bar.setStringPainted(true);

    timer = new Timer(100,this);
    timer.setActionCommand("timer");
    timer.start();

    add(bar,BorderLayout.NORTH);
    pack();
    setVisible(true);
  }

  @Override
  public void actionPerformed(ActionEvent ev) {
    String cmd = ev.getActionCommand();
    if ("timer".equals(cmd)) {
      int val = bar.getValue();
      if (val >= 100) {
        timer.stop();
      }
      else {
        // 注意、本当はここで処理の進捗状況を把握する
        val += 1;
        bar.setValue(val);
      }
    }
  }
}
//---------------------------------------------------
//・目次 - Swing
//  http://blogs.yahoo.co.jp/artery2020/40568561.html
//・目次 - Java入門
//  http://blogs.yahoo.co.jp/artery2020/39975776.html
//・目次 - ビジネスパーソンの常識と非常識
//  http://blogs.yahoo.co.jp/artery2020/39728331.html
//・目次 - 論理・発想・思考についての考察と鍛え方
//  http://blogs.yahoo.co.jp/artery2020/39657784.html
//・目次 - 単なる雑談
//  http://blogs.yahoo.co.jp/artery2020/40599964.html
//---------------------------------------------------