| ■ swingコンポーネント->JProgressBar | |
| JProgressBarは一部分または全体に色を塗ることができる矩形のコンポーネントですが、作業時間の進捗状態を表すために使われます。 |
|
| コンストラクタ(抜粋) | ||||||||||
|
||||||||||
| メソッド(抜粋) | ||||||||||
|
||||||||||
|
|
||||||||||
|
progressSample.java |
||||||||||
| import java.applet.*; | ||||||||||
| import java.awt.*; | ||||||||||
| import java.awt.event.*; | ||||||||||
| import javax.swing.*; | ||||||||||
| import javax.swing.event; | ||||||||||
| public class progressSample extends JApplet implements ActionListener { | ||||||||||
| Container contentPane; | ||||||||||
| JButton btn = new JButton("スタート"); | ||||||||||
| JProgressBar pgsBar; | ||||||||||
| Thread th; | ||||||||||
| public void init() { | ||||||||||
| contentPane = getContentPane(); | ||||||||||
| contentPane.setLayout(new FlowLayout()); | ||||||||||
| contentPane.add(btn); | ||||||||||
| btn.addActionListener(this); | ||||||||||
| pgsBar = new JProgressBar(0,100); | ← @ | |||||||||
| pgsBar.setValue(0); | ← A | |||||||||
| pgsBar.setStringPainted(true); | ← B | |||||||||
| contentPane.add(pgsBar); | ||||||||||
| } | ||||||||||
| public void actionPerformed(ActionEvent e) { | ||||||||||
| if(th==null){ | ← C | |||||||||
| th = new sampleThread(); | ||||||||||
| th.start(); | ||||||||||
| } | ||||||||||
| } | ||||||||||
| class sampleThread extends Thread{ | ← D | |||||||||
| public void run(){ | ||||||||||
| for(int i=0; i<=100; i++){ | ||||||||||
| try{ | ||||||||||
| sleep(100); | ||||||||||
| }catch(Exception e){} | ||||||||||
| pgsBar.setValue(i); | ||||||||||
| } | ||||||||||
| th = null; | ||||||||||
| } | ||||||||||
| } | ||||||||||
| } | ||||||||||
| @インスタンスの生成
pgsBar = new JProgressBar(0,100); 最小値0、最大値100としてJProgressBarのインスタンスを生成しています。 |
||||||||||
| ApgsBar.setValue(0); プログレスバーの初期値を0に設定しています。 |
||||||||||
| BpgsBar.setStringPainted(true); プログレスバーが進捗文字列を表示するように設定しています。 ※デフォルトでは進捗文字列はfalseに設定されており、表示されません。 |
||||||||||
| C
if(th==null){ th = new sampleThread(); th.start(); } thがnullであれば、sampleThreadクラスをインスタンス化し、スレッドを作成、開始します。 |
||||||||||
| Dclass
sampleThread extends Thread{ ・・・ }; sampleThreadクラスを定義しています。100までの繰り返しの中でiの値をプログレスバーにセットしています。繰り返しが終わると、新たにスレッドを作成できるようにth=nullとしています。 |
||||||||||
| もどる | ||||||||||