■作成するプログラムの概要
GUIアプリケーションを作成する
GUI画面にスクロールバーを作成する。
スクロールバーの移動に合わせて値(0〜100)をラベルに出力する。
なお、ラベル出力内容は以下の通り。
・0の場合は「0:一番左」
・50の場合は「50:中央」
・100の場合は「100:一番右」
▼スクロールバーの作成
Javaでスクロールバーを作成する時は、「JScrollBar」を使用する。
JScrollBar scroll_bar = new JScrollBar(JScrollBar.HORIZONTAL, 0, 5, 0, 105);
第1引数:「HORIZONTAL(水平方向)」か「VERTICAL(垂直方向)」を指定する。
第2引数:初期値
第3引数:バーの長さ
第4引数:最小値
第5引数:最大値
■フローチャート
▼初期処理(コンストラクタ)
▼スクロールバーを移動した時の処理
■プログラム仕様
▼初期処理(コンストラクタ)
入力 | 処理内容 | 出力 |
---|---|---|
– | スクロールバーを移動した時の処理を追加する。 | – |
– | 画面にスクロールバーを配置する。(*1) | – |
– | 画面にラベルを配置する。(*2) | – |
– | 画面を閉じたとき、プログラムも終了するように設定する。 | – |
– | 画面サイズを設定する。 横:300 縦:100 | – |
– | GUI画面を可視化する。 | – |
(*1)スクロールバーは、メンバ変数としてフィールドに宣言する。
第1引数:「HORIZONTAL(水平方向)」
第2引数:初期値(0)
第3引数:バーの長さ(5)
第4引数:最小値(0)
第5引数:最大値(105)
(*2)ラベルは、メンバ変数としてフィールドに宣言する。
第1引数:初期値(0:一番左)
第2引数:表示位置(CENTER)
▼スクロールバーを移動した時の処理
入力 | 処理内容 | 出力 |
---|---|---|
– | 現在のスクロールバーの位置(値:0〜100)を取得する。 | – |
– | ▼条件分岐:スクロールバーの位置(値) |【0の場合】 |「0:一番左」を出力する。① ----- |【50の場合】 |「50:中央」を出力する。② ----- |【100の場合】 |「100:一番左」を出力する。③ ----- |【上記以外】 |「<スクロールの位置(値)>」を出力する。④ ▲ | 【ラベル】 ①「0:一番左」 ②「50:中央」 ③「100:一番右」 ④「<スクロールの位置(値)>」 |
■サンプルコード
import java.awt.BorderLayout;
import java.awt.event.AdjustmentEvent;
import java.awt.event.AdjustmentListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollBar;
class MakeScrollBar extends JFrame implements AdjustmentListener {
// フィールド宣言
private JScrollBar scroll_bar =
new JScrollBar(JScrollBar.HORIZONTAL, 0, 5, 0, 105);
private JLabel output_label =
new JLabel("0:一番左", JLabel.CENTER);
// コンストラクタ
public MakeScrollBar() {
// スクロールバーを移動した時の処理設定
scroll_bar.addAdjustmentListener(this);
// スクロールバーの配置設定
getContentPane().add(BorderLayout.NORTH, scroll_bar);
// ラベルの配置設定
getContentPane().add(BorderLayout.CENTER, output_label);
// GUIを閉じた時、プログラムも終了
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// サイズを設定
setSize(300, 100);
// GUI画面の可視化
setVisible(true);
}
// スクロールバーの位置を変更した時の処理
public void adjustmentValueChanged(AdjustmentEvent ae) {
// 現在のスクロールバーの位置を取得
JScrollBar scrollBar_value = (JScrollBar)ae.getSource();
// ラベルにスクロールバー値を出力
switch(scrollBar_value.getValue()) {
case 0:
output_label.setText("" + scrollBar_value.getValue() + ":一番左");
break;
case 50:
output_label.setText("" + scrollBar_value.getValue() + ":中央");
break;
case 100:
output_label.setText("" + scrollBar_value.getValue() + ":一番右");
break;
default:
output_label.setText("" + scrollBar_value.getValue());
}
}
}
// メイン処理
public class ChooseScrollBar {
public static void main(String[] args) {
new MakeScrollBar();
}
}
■実行結果
・初期画面(起動時)
・スクロールバーを中央に移動
・スクロールバーを一番右に移動
・スクロールバーを任意の位置に移動
コメント