JProgressBarクラスの定義とコンストラクタ

広告

JProgressBarクラスの定義を確認します。クラス図は次のようになっています。

  • java.lang.Object
  • java.awt.Component
  • java.awt.Container
  • javax.swing.JComponent
  • javax.swing.JProgressBar
  • public class JProgressBar extends JComponent implements SwingConstants, Accessible

JProgressBarはJComponentクラスのサブクラスとなっています。JComponentクラスはSwingで用いられる多くのコンポーネントのベースとなっているクラスです。

JProgressBarクラスのコンストラクタ

JProgressBarクラスをを利用するにはコンストラクタを使ってJProgressBarクラスのオブジェクトを作成します。どのようなコンストラクタが用意されているか確認してみます。

コンストラクタ
JProgressBar()
ボーダーを表示し、進捗文字列を表示しない、水平方向の進捗バーを作成します。
JProgressBar(BoundedRangeModel newModel)
水平方向の進捗バーを作成します。
JProgressBar(int orient)
指定した方向 (SwingConstants.VERTICAL または SwingConstants.HORIZONTAL) で進捗バーを作成します。
JProgressBar(int min, int max)
水平方向の進捗バーを作成します。
JProgressBar(int orient, int min, int max)
進捗バーを作成します。

コンストラクタは5つ用意されています。進捗バーの方向と最大値最小値を設定するかどうかで選択します。またデータを管理しているBoundedRangeModelインターフェースを実装したクラスを元に作成することも出来ます。

では1番目のコンストラクタを確認してみます。

ボーダーを表示し、進捗文字列を表示しない、水平方向の進捗バーを作成します。
初期値および最小値は 0、最大値は 100 です。

進捗バーの方向が水平方向であり、最小値が「0」最大値が「100」の進捗バーを作成します。

実際の使い方は次のようになります。

JProgressBar bar = new JProgressBar();

サンプルプログラム

では簡単なサンプルを作成して試してみます。

JProgressBarTest1.java

import javax.swing.*;
import java.awt.BorderLayout;

public class JProgressBarTest1 extends JFrame{

  public static void main(String[] args){
    JProgressBarTest1 frame = new JProgressBarTest1();

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setBounds(10, 10, 300, 200);
    frame.setTitle("タイトル");
    frame.setVisible(true);
  }

  JProgressBarTest1(){
    JProgressBar bar = new JProgressBar();

    JPanel barPanel = new JPanel();
    barPanel.add(bar);

    getContentPane().add(barPanel, BorderLayout.CENTER);
  }
}

上記をコンパイルした後で実行すると次のように表示されます。

JProgressBarのサンプル

対象となる処理の進み具合に応じて進捗バーに実際に値を設定することで進捗状態が分かるようになります。

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)