- Home ›
- Swing ›
- JProgressBarクラス ›
- HERE
進捗バーの完了したパーセントを取得する
広告
進捗バーを利用中に完了したパーセンテージの値を取得する方法を確認します。取得するにはJProgressBarクラスで用意されている「getPercentComplete」メソッドを使います。
getPercentComplete public double getPercentComplete()
進捗バーの完了したパーセントを返します。値は 0.0 から 1.0 の範囲であるこ とに注意してください。 戻り値: 進捗バーの完了したパーセント
戻り値として現在完了したパーセンテージの値をdouble型の値で取得します。取得する値は0.0から1.0までの値となります。100%であれば1.0です。
実際の使い方は次のようになります。
JProgressBar bar = new JProgressBar(); doubler per = bar.getPercentComplete();
サンプルプログラム
では簡単なサンプルを作成して試してみます。
import javax.swing.*;
import java.awt.BorderLayout;
import java.awt.event.*;
public class JProgressBarTest8 extends JFrame implements ActionListener{
Timer timer;
JButton startButton;
JButton stopButton;
JProgressBar bar;
JLabel label;
int count;
public static void main(String[] args){
JProgressBarTest8 frame = new JProgressBarTest8();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(10, 10, 300, 200);
frame.setTitle("タイトル");
frame.setVisible(true);
}
JProgressBarTest8(){
count = 0;
label = new JLabel("Not Start");
JPanel labelPanel = new JPanel();
labelPanel.add(label);
startButton = new JButton("start");
startButton.addActionListener(this);
startButton.setActionCommand("start");
stopButton = new JButton("stop");
stopButton.addActionListener(this);
stopButton.setActionCommand("stop");
stopButton.setEnabled(false);
JPanel buttonPanel = new JPanel();
buttonPanel.add(startButton);
buttonPanel.add(stopButton);
bar = new JProgressBar(0, 200);
bar.setStringPainted(true);
bar.setString("");
bar.setValue(0);
JPanel barPanel = new JPanel();
barPanel.add(bar);
timer = new Timer(100 , this);
timer.setActionCommand("timer");
getContentPane().add(labelPanel, BorderLayout.PAGE_START);
getContentPane().add(buttonPanel, BorderLayout.PAGE_END);
getContentPane().add(barPanel, BorderLayout.CENTER);
}
public void actionPerformed(ActionEvent e){
String cmd = e.getActionCommand();
if (cmd.equals("start")){
startButton.setEnabled(false);
stopButton.setEnabled(true);
timer.start();
}else if (cmd.equals("stop")){
startButton.setEnabled(true);
stopButton.setEnabled(false);
timer.stop();
}else if (cmd.equals("timer")){
label.setText(count + " count");
if (count >= 200){
startButton.setEnabled(true);
stopButton.setEnabled(false);
timer.stop();
bar.setValue(count);
count = 0;
}else{
count++;
bar.setValue(count);
}
int per = (int)(bar.getPercentComplete() * 100);
bar.setString(per + "% 完了");
}
}
}
上記をコンパイルした後で実行すると次のように表示されます。
今回は完了したパーセンテージの値を取得し、進捗度合いの表示をカスタマイズして表示しています。実行中の画面は次の通りです。
( Written by Tatsuo Ikura )
JavaDrive