モジュール java.desktop
パッケージ javax.swing

クラスJProgressBar

  • すべての実装されたインタフェース:
    ImageObserver, MenuContainer, Serializable, Accessible, SwingConstants

    @JavaBean(defaultProperty="UI",
              description="A component that displays an integer value.")
    public class JProgressBar
    extends JComponent
    implements SwingConstants, Accessible
    一部のタスクの進捗状況を視覚的に表示するコンポーネントです。 タスクの処理の進行にあわせて、進捗バーにタスクの完了した割合が表示されます。 この割合は、通常、長方形で表されます。最初、この長方形の内部は空ですが、タスクの進行とともに塗りつぶされていきます。 また、進捗バーにこの割合のテキスト表現を表示することもできます。

    JProgressBarは、BoundedRangeModelをデータ・モデルとし、タスクの「現在の」状態を表すvalueプロパティ、タスクの開始点を表すminimumプロパティ、およびタスクの終了点を表すmaximumプロパティを指定して使用します。

    不明な長さのタスクが実行されていることを示すには、進捗バーを不確定モードにすることができます。 バーが不確定モードの間は、常に処理が行われていることが動画で表示されます。 タスクの長さが判定されるとすぐに、進捗バーの値を更新して確定モードに戻します。

    進捗バーの作成例を次に示します。taskはタスクの進捗状況を返すオブジェクトで、作業内容の一部を表します。

    progressBar = new JProgressBar(0, task.getLengthOfTask());
    progressBar.setValue(0);
    progressBar.setStringPainted(true);
    
    タスクの現在の状態を問い合わせ、戻り値を使って進捗バーを更新する例を次に示します。
    progressBar.setValue(task.getCurrent());
    
    進捗バーを不確定モードにし、タスクの長さが判明したら確定モードに戻す例です。
    progressBar = new JProgressBar();
    ...//when the task of (initially) unknown length begins:
    progressBar.setIndeterminate(true);
    ...//do some work; get length of task...
    progressBar.setMaximum(newLength);
    progressBar.setValue(newValue);
    progressBar.setIndeterminate(false);
    

    詳細な例および解説については、「The Java Tutorial」のセクション「How to Monitor Progress」を参照してください。

    警告: Swingはスレッドに対して安全ではありません。 詳細は、「Swing's Threading Policy」を参照してください。

    警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースと互換ではなくなる予定です。 現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。 1.4以降、すべてのJavaBeans™用の長期間の格納サポートがjava.beansパッケージに追加されています。 XMLEncoderを参照してください。

    導入されたバージョン:
    1.2
    関連項目:
    BasicProgressBarUI, BoundedRangeModel, SwingWorker
    • フィールドの詳細

      • orientation

        protected int orientation
        進捗バーが水平であるか垂直であるかを示します。 デフォルトはHORIZONTALです。
        関連項目:
        setOrientation(int)
      • paintBorder

        protected boolean paintBorder
        進捗バーの周囲にボーダーを表示するかどうかを示します。 デフォルトはtrueです。
        関連項目:
        setBorderPainted(boolean)
      • progressString

        protected String progressString
        進捗バーに表示できるオプションの文字列です。 デフォルトはnullです。 null以外の値に設定しても、必ずしも文字列が表示されるわけではありません。 文字列を表示する場合は、paintStringtrueにしてください。
        関連項目:
        setString(java.lang.String), setStringPainted(boolean)
      • paintString

        protected boolean paintString
        進捗バーに文字列を表示するかどうかを設定します。 デフォルトはfalseです。 trueに設定すると、進捗状況のテキスト表示が進捗バーにレンダリングされます。 progressStringnullの場合、完了した割合が進捗バーに表示されます。 そうでない場合は、progressStringが進捗バーにレンダリングされます。
        関連項目:
        setStringPainted(boolean), setString(java.lang.String)
      • changeEvent

        protected transient ChangeEvent changeEvent
        ChangeEventは、インスタンスごとに1つだけ必要です。これは、このイベントの扱うプロパティのソースが進捗バーだけであり、それ以外に変更されないためです。 はじめてイベント通知がトリガーされたときに、イベントは遅れて作成されます。
        関連項目:
        fireStateChanged()
      • changeListener

        protected ChangeListener changeListener
        進捗バーのモデルから送られた変更イベントを待機し、この進捗バーに登録された変更イベント・リスナーにふたたびディスパッチします。
        関連項目:
        createChangeListener()
    • メソッドの詳細

      • getOrientation

        public int getOrientation()
        進捗バーの方向に応じて、SwingConstants.VERTICALまたはSwingConstants.HORIZONTALを返します。 デフォルトの方向はSwingConstants.HORIZONTALです。
        戻り値:
        HORIZONTALまたはVERTICAL
        関連項目:
        setOrientation(int)
      • setOrientation

        @BeanProperty(preferred=true,
                      visualUpdate=true,
                      description="Set the progress bar\'s orientation.")
        public void setOrientation​(int newOrientation)
        進捗バーの方向をnewOrientation (SwingConstants.VERTICALまたはSwingConstants.HORIZONTAL)に設定します。 デフォルトの方向はSwingConstants.HORIZONTALです。
        パラメータ:
        newOrientation - HORIZONTALまたはVERTICAL
        例外:
        IllegalArgumentException - newOrientationの値が無効な場合
        関連項目:
        getOrientation()
      • setStringPainted

        @BeanProperty(visualUpdate=true,
                      description="Whether the progress bar should render a string.")
        public void setStringPainted​(boolean b)
        stringPaintedプロパティの値を設定します。このプロパティは、進捗バーが進捗文字列をレンダリングするかどうかを指定します。 デフォルトではfalseに設定され、文字列はペイントされません。 進捗文字列をサポートしないルック・アンド・フィールや、進捗バーが確定モードのときにのみ進捗文字列をサポートするルック・アンド・フィールもあります。
        パラメータ:
        b - 進捗バーに文字列をレンダリングする場合はtrue
        関連項目:
        isStringPainted(), setString(java.lang.String)
      • getString

        public String getString()
        現在の進捗状況を表すString表現を返します。 デフォルトでは、getPercentCompleteの戻り値に基づいて、単純なパーセンテージを表すStringが返されます。 たとえば、「42%」のような文字列になります。 この設定は、setStringを呼び出すことで変更できます。
        戻り値:
        進捗文字列の値。進捗文字列がnullの場合、単純なパーセンテージを示す文字列
        関連項目:
        setString(java.lang.String)
      • setString

        @BeanProperty(visualUpdate=true,
                      description="Specifies the progress string to paint")
        public void setString​(String s)
        進捗文字列の値を設定します。 デフォルトでは、この文字列はnullで、単純なパーセンテージを表す文字列が返されます(組込みの動作)。 独自の進捗文字列を指定したあとで、組込みの動作に戻すには、文字列をnullに設定し直します。

        進捗文字列は、isStringPaintedtrueを返す場合にだけペイントされます。

        パラメータ:
        s - 進捗文字列の値
        関連項目:
        getString(), setStringPainted(boolean), isStringPainted()
      • getPercentComplete

        @BeanProperty(bound=false)
        public double getPercentComplete()
        進捗バーの完了したパーセントを返します。 値は0.0から1.0の範囲にあります。
        戻り値:
        進捗バーの完了したパーセント
      • isBorderPainted

        public boolean isBorderPainted()
        borderPaintedプロパティを返します。
        戻り値:
        borderPaintedプロパティの値
        関連項目:
        setBorderPainted(boolean)
      • setBorderPainted

        @BeanProperty(visualUpdate=true,
                      description="Whether the progress bar should paint its border.")
        public void setBorderPainted​(boolean b)
        borderPaintedプロパティを設定します。進捗バーがボーダーをペイントするようにするにはtrueに設定します。 このプロパティのデフォルト値はtrueです。 ルック・アンド・フィールによっては、ボーダーのペイントが実装されていない場合があります。その場合、このプロパティは無視されます。
        パラメータ:
        b - 進捗バーにボーダーをペイントする場合はtrue、そうでない場合はfalse
        関連項目:
        isBorderPainted()
      • getUI

        public ProgressBarUI getUI()
        このコンポーネントをレンダリングするルック・アンド・フィールオブジェクトを返します。
        オーバーライド:
        クラスJComponentgetUI
        戻り値:
        このコンポーネントをレンダリングするProgressBarUIオブジェクト
      • updateUI

        public void updateUI()
        現在のルック・アンド・フィールからの値にUIプロパティをリセットします。
        オーバーライド:
        updateUI 、クラス:  JComponent
        関連項目:
        JComponent.updateUI()
      • createChangeListener

        protected ChangeListener createChangeListener()
        サブクラスが別の方法でモデルからの変更イベントを処理する場合は、このメソッドをオーバーライドしてChangeListenerのカスタム実装のインスタンスを返すことができます。 デフォルトのChangeListenerは、単純にfireStateChangedメソッドを呼び出すことにより、ChangeEventを、進捗バーに直接追加されたChangeListenerに転送します。
        戻り値:
        カスタムのChangeListener実装のインスタンス。
        関連項目:
        changeListener, fireStateChanged(), ChangeListener, BoundedRangeModel
      • addChangeListener

        public void addChangeListener​(ChangeListener l)
        指定されたChangeListenerを進捗バーに追加します。
        パラメータ:
        l - 追加するChangeListener
      • removeChangeListener

        public void removeChangeListener​(ChangeListener l)
        進捗バーからChangeListenerを削除します。
        パラメータ:
        l - 削除するChangeListener
      • getChangeListeners

        @BeanProperty(bound=false)
        public ChangeListener[] getChangeListeners()
        addChangeListenerを使用してこの進捗バーに追加されたすべてのChangeListenerの配列を返します。
        戻り値:
        追加されたすべてのChangeListener。リスナーが追加されていない場合は空の配列
        導入されたバージョン:
        1.4
      • fireStateChanged

        protected void fireStateChanged()
        このJProgressBarをソースとするChangeEventを、ChangeEventの通知を受ける登録をしているすべてのChangeListenerに送信します。 このメソッドは、モデルからChangeEventを受信するたびに呼び出されます。

        必要に応じてイベント・インスタンスが作成され、changeEventに格納されます。

        関連項目:
        addChangeListener(javax.swing.event.ChangeListener), EventListenerList
      • setModel

        @BeanProperty(bound=false,
                      expert=true,
                      description="The data model used by the JProgressBar.")
        public void setModel​(BoundedRangeModel newModel)
        JProgressBarが使用するデータ・モデルを設定します。 BoundedRangeModelextentは使用しないため、0に設定されます。
        パラメータ:
        newModel - 使用するBoundedRangeModel
      • getValue

        public int getValue()
        BoundedRangeModelの進捗バーの現在のvalueを返します。 この値は常に、最小値以上、最大値以下の範囲に収まります。
        戻り値:
        進捗バーの現在の値
        関連項目:
        setValue(int), BoundedRangeModel.getValue()
      • setValue

        @BeanProperty(bound=false,
                      preferred=true,
                      description="The progress bar\'s current value.")
        public void setValue​(int n)
        進捗バーの現在の値をnに設定します。 このメソッドはモデルに新しい値を転送します。

        不適切な値を割り当てたことにより発生する数学的な問題は、データ・モデル(BoundedRangeModelインスタンス)が処理します。 詳細は、BoundedRangeModelのドキュメントを参照してください。

        新しい値が以前の値と異なる場合は、すべての変更リスナーが通知されます。

        パラメータ:
        n - 新しい値
        関連項目:
        getValue(), addChangeListener(javax.swing.event.ChangeListener), BoundedRangeModel.setValue(int)
      • setMinimum

        @BeanProperty(bound=false,
                      preferred=true,
                      description="The progress bar\'s minimum value.")
        public void setMinimum​(int n)
        進捗バーの最小値(進捗バーのデータ・モデルに格納)をnに設定します。

        不適切な値を割り当てたことにより発生する数学的な問題は、データ・モデル(BoundedRangeModelインスタンス)が処理します。 詳細は、BoundedRangeModelのドキュメントを参照してください。

        最小値が以前の最小値と異なる場合は、すべての変更リスナーが通知されます。

        パラメータ:
        n - 新しい最小値
        関連項目:
        getMinimum(), addChangeListener(javax.swing.event.ChangeListener), BoundedRangeModel.setMinimum(int)
      • setMaximum

        @BeanProperty(bound=false,
                      preferred=true,
                      description="The progress bar\'s maximum value.")
        public void setMaximum​(int n)
        進捗バーの最大値(進捗バーのデータ・モデルに格納)をnに設定します。

        不適切な値を割り当てたことにより発生する数学的な問題は、ベースとなるBoundedRangeModelが処理します。 詳細は、BoundedRangeModelのドキュメントを参照してください。

        最大値が以前の最大値と異なる場合は、すべての変更リスナーが通知されます。

        パラメータ:
        n - 新しい最大値
        関連項目:
        getMaximum(), addChangeListener(javax.swing.event.ChangeListener), BoundedRangeModel.setMaximum(int)
      • setIndeterminate

        public void setIndeterminate​(boolean newValue)
        進捗バーのindeterminateプロパティを設定します。このプロパティは、進捗バーが確定モードであるか不確定モードであるかを指定します。 不確定モードの進捗バーは、連続的にアニメーションを表示して、不明な長さの処理が行われていることを示します。 デフォルトでは、このプロパティはfalseに設定されます。 ルック・アンド・フィールによっては、不確定モードの進捗バーがサポートされていない場合があります。その場合、このプロパティは無視されます。

        不確定モードの進捗バーの使用例については、「How to Monitor Progress」を参照してください。

        パラメータ:
        newValue - 進捗バーを不確定モードに切り替える場合はtrue、通常モードに戻す場合はfalse
        導入されたバージョン:
        1.4
        関連項目:
        isIndeterminate(), BasicProgressBarUI
      • isIndeterminate

        @BeanProperty(bound=false,
                      description="Is the progress bar indeterminate (true) or normal (false)?")
        public boolean isIndeterminate()
        indeterminateプロパティの値を返します。
        戻り値:
        indeterminateプロパティの値
        導入されたバージョン:
        1.4
        関連項目:
        setIndeterminate(boolean)
      • paramString

        protected String paramString()
        このJProgressBarの文字列表現を返します。 このメソッドは、デバッグ専用です。 返される文字列の内容および形式は実装によって異なる可能性があります。 返される文字列は空の場合がありますが、nullにはなりません。
        オーバーライド:
        paramString 、クラス:  JComponent
        戻り値:
        このJProgressBarの文字列表現
      • getAccessibleContext

        @BeanProperty(bound=false,
                      expert=true,
                      description="The AccessibleContext associated with this ProgressBar.")
        public AccessibleContext getAccessibleContext()
        このJProgressBarに関連付けられているAccessibleContextを取得します。 進捗バーの場合、AccessibleContextAccessibleJProgressBarの形式を取ります。 必要に応じて、新しいAccessibleJProgressBarインスタンスが作成されます。
        定義:
        getAccessibleContext、インタフェース: Accessible
        オーバーライド:
        getAccessibleContext、クラス: Component
        戻り値:
        このJProgressBarAccessibleContextとして機能するAccessibleJProgressBar