Swing-jprogressbar

提供:Dev Guides
移動先:案内検索

SWING-JProgressBarクラス

前書き

クラス JProgressBar は、タスクの進行状況を視覚的に表示するコンポーネントです。

クラス宣言

以下は javax.swing.JProgressBar クラスの宣言です-

public class JProgressBar
   extends JComponent
      implements SwingConstants, Accessible

フィールド

以下は javax.swing.JProgressBar クラスのフィールドです-

  • protected ChangeEvent changeEvent -イベントの唯一の興味深いプロパティは不変ソース、つまりプログレスバーなので、インスタンスごとに1つのChangeEventのみが必要です。
  • protected ChangeListener changeListener -プログレスバーのモデルによって送信された変更イベントをリッスンし、このプログレスバーに登録された変更イベントリスナーに再送信します。
  • protected BoundedRangeModel model -プログレスバーのデータを保持するオブジェクト。
  • protected int orientation -プログレスバーが水平か垂直か。
  • protected boolean paintBorder -プログレスバーの周囲に境界線を表示するかどうか。
  • protected boolean paintString -プログレスバーにテキスト文字列を表示するかどうか。
  • protected String progressString -プログレスバーに表示できるオプションの文字列。

クラスコンストラクター

Sr.No. Constructor & Description
1

JProgressBar()

境界線を表示するが進行状況文字列を表示しない水平進行状況バーを作成します。

2

JProgressBar(BoundedRangeModel newModel)

指定されたモデルを使用して進行状況バーのデータを保持する水平進行状況バーを作成します。

3

JProgressBar(int orient)

SwingConstantsのいずれかである指定された方向でプログレスバーを作成します。 VERTICALまたはSwingConstants.HORIZONTAL。

4

JProgressBar(int min, int max)

指定された最小値と最大値で水平プログレスバーを作成します。

5

JProgressBar(int orient, int min, int max)

指定された方向、最小、および最大を使用してプログレスバーを作成します。

クラスメソッド

Sr.No. Method & Description
1

void addChangeListener(ChangeListener l)

指定されたChangeListenerを進行状況バーに追加します。

2

protected ChangeListener createChangeListener()

モデルからの変更イベントを異なる方法で処理するサブクラスは、これをオーバーライドして、カスタムChangeListener実装のインスタンスを返すことができます。

3

protected void fireStateChanged()

ソースがJProgressBarであるChangeEventを、ChangeEventに関心を登録しているすべてのChangeListenerに送信します。

4

AccessibleContext getAccessibleContext()

このJProgressBarに関連付けられたAccessibleContextを取得します。

5

ChangeListener[] getChangeListeners()

addChangeListenerでこのプログレスバーに追加されたすべてのChangeListenerの配列を返します。

6

int getMaximum()

BoundedRangeModelからプログレスバーの最大値を返します。

7

int getMinimum()

BoundedRangeModelからプログレスバーの最小値を返します。

8

BoundedRangeModel getModel()

この進行状況バーで使用されるデータモデルを返します。

9

int getOrientation()

進行状況バーの方向に応じて、SwingConstants.VERTICALまたはSwingConstants.HORIZONTALを返します。

10

double getPercentComplete()

進行状況バーの完了率を返します。

11

String getString()

現在の進行状況の文字列表現を返します。

12

ProgressBarUI getUI()

このコンポーネントをレンダリングするルックアンドフィールオブジェクトを返します。

13

String getUIClassID()

このコンポーネントをレンダリングするルックアンドフィールクラスの名前を返します。

14

int getValue()

BoundedRangeModelから進行状況バーの現在の値を返します。

15

boolean isBorderPainted()

borderPaintedプロパティを返します。

16

boolean isIndeterminate()

不確定プロパティの値を返します。

17

boolean isStringPainted()

stringPaintedプロパティの値を返します。

18

protected void paintBorder(Graphics g)

borderPaintedプロパティがtrueの場合、プログレスバーの境界線をペイントします。

19

protected String paramString()

このJProgressBarの文字列表現を返します。

20

void removeChangeListener(ChangeListener l)

進行状況バーからChangeListenerを削除します。

21

void setBorderPainted(boolean b)

borderPaintedプロパティを設定します。プログレスバーが境界線をペイントする必要がある場合はtrueです。

22

void setIndeterminate(boolean newValue)

プログレスバーの不確定プロパティを設定します。これは、プログレスバーが確定モードか不確定モードかを決定します。

23

void setMaximum(int n)

プログレスバーの最大値(プログレスバーのデータモデルに格納されている)をnに設定します。

24

void setMinimum(int n)

プログレスバーの最小値(プログレスバーのデータモデルに格納されている)をnに設定します。

25

void setModel(BoundedRangeModel newModel)

JProgressBarが使用するデータモデルを設定します。

26

void setOrientation(int newOrientation)

進行状況バーの方向をnewOrientationに設定します。これはSwingConstants.VERTICALまたはSwingConstants.HORIZONTALでなければなりません。

27

void setString(String s)

進捗文字列の値を設定します。

28

void setStringPainted(boolean b)

stringPaintedプロパティの値を設定します。これは、プログレスバーがプログレス文字列をレンダリングするかどうかを決定します。

29

void setUI(ProgressBarUI ui)

このコンポーネントをレンダリングするルックアンドフィールオブジェクトを設定します。

30

void setValue(int n)

進行状況バーの現在の値を n に設定します。

31

void updateUI()

UIプロパティを現在のルックアンドフィールの値にリセットします。

継承されるメソッド

このクラスは、次のクラスからメソッドを継承します-

  • javax.swing.JComponent
  • java.awt.Container
  • java.awt.Component
  • java.lang.Object

JProgressBarの例

たとえば、 D:/> SWING> com> finddevguides> gui> の任意のエディターを使用して、次のJavaプログラムを作成します。

SwingControlDemo.java

package com.finddevguides.gui;

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

public class SwingControlDemo {
   private JFrame mainFrame;
   private JLabel headerLabel;
   private JLabel statusLabel;
   private JPanel controlPanel;

   public SwingControlDemo(){
      prepareGUI();
   }
   public static void main(String[] args){
      SwingControlDemo  swingControlDemo = new SwingControlDemo();
      swingControlDemo.showProgressBarDemo();
   }
   private void prepareGUI(){
      mainFrame = new JFrame("Java Swing Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));

      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }
      });
      headerLabel = new JLabel("", JLabel.CENTER);
      statusLabel = new JLabel("",JLabel.CENTER);
      statusLabel.setSize(350,100);

      controlPanel = new JPanel();
      controlPanel.setLayout(new FlowLayout());

      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);
   }
   private JProgressBar progressBar;
   private Task task;
   private JButton startButton;
   private JTextArea outputTextArea;

   private void showProgressBarDemo(){
      headerLabel.setText("Control in action: JProgressBar");
      progressBar = new JProgressBar(0, 100);
      progressBar.setValue(0);
      progressBar.setStringPainted(true);
      startButton = new JButton("Start");
      outputTextArea = new JTextArea("",5,20);
      JScrollPane scrollPane = new JScrollPane(outputTextArea);

      startButton.addActionListener(new ActionListener() {
         @Override
         public void actionPerformed(ActionEvent e) {
            task = new Task();
            task.start();
         }
      });
      controlPanel.add(startButton);
      controlPanel.add(progressBar);
      controlPanel.add(scrollPane);
      mainFrame.setVisible(true);
   }
   private class Task extends Thread {
      public Task(){
      }
      public void run(){
         for(int i =0; i<= 100; i+=10){
            final int progress = i;

            SwingUtilities.invokeLater(new Runnable() {
               public void run() {
                  progressBar.setValue(progress);
                  outputTextArea.setText(outputTextArea.getText()
                     + String.format("Completed %d%% of task.\n", progress));
               }
            });
            try {
               Thread.sleep(100);
            } catch (InterruptedException e) {}
         }
      }
   }
}

コマンドプロンプトを使用してプログラムをコンパイルします。 D:/> SWING に移動して、次のコマンドを入力します。

D:\SWING>javac com\finddevguides\gui\SwingControlDemo.java

エラーが発生しない場合、コンパイルが成功したことを意味します。 次のコマンドを使用してプログラムを実行します。

D:\SWING>java com.finddevguides.gui.SwingControlDemo

次の出力を確認します。

Swing JProgressBar