スライダーの方向を設定する
スライダーはデフォルトでは水平方向に表示されていますが、垂直方向のスライダーを作成することも可能です。
スライダーの方向を設定するにはコンストラクタで指定する方法とメソッドを使う方法があります。まずはコンストラクタで設定する方法を確認します。
public JSlider(int orientation)
方向を指定して、範囲が 0 ~ 100、初期値が 50 のスライダを作成します。方
向は、SwingConstants.VERTICAL または SwingConstants.HORIZONTAL になりま
す。
パラメータ:
  orientation - スライダの方向 
例外: 
  IllegalArgumentException - 方向が VERTICAL または HORIZONTAL のどちら
    でもない場合
引数にはスライダーの方向を設定します。設定できる値は次のどちらかです。
| 値 | 方向 | 
|---|---|
| JSlider.VERTICALERT | 垂直方向 | 
| JSlider.HORIZONTAL | 水平方向 | 
実際の使い方は次のようになります。
JSlider slider = JSlider(JSlider.VERTICALERT);
また方向だけでなく最小値、最大値、初期値をまとめて指定できるコンストラクタも用意されています。
public JSlider(int orientation, int min, int max, int value)
方向、最小値、最大値、および初期値を指定して、スライダを作成します。方
向は、SwingConstants.VERTICAL または SwingConstants.HORIZONTAL になり
ます。
スライダの最小値、初期値、および最大値として設定された値が適切でないた
めに問題が発生した場合は、スライダのデータを保持する BoundedRangeModel
がその問題を処理します。詳細は、BoundedRangeModel のドキュメントを参照
してください。
パラメータ:
  orientation - スライダの方向
  min - スライダの最小値
  max - スライダの最大値
  value - スライダの初期値 
例外: 
  IllegalArgumentException - 方向が VERTICAL または HORIZONTAL のどちら
    でもない場合
引数にはスライダーの方向、最小値、最大値、初期値をそれぞれ指定します。
メソッドで指定する
JSliderクラスのオブジェクトを作成してからメソッドを使ってスライダーの方向を設定することも可能です。JSliderクラスで用意されている「setOrientation」メソッドを使います。
public void setOrientation(int orientation)
スライダの方向を newOrientation (SwingConstants.VERTICAL または 
SwingConstants.HORIZONTAL) に設定します。
パラメータ:
  orientation - HORIZONTAL または VERTICAL 
例外: 
  IllegalArgumentException - 方向が VERTICAL または HORIZONTAL のどちら
    でもない場合
引数にはスライダーの方向を指定します。指定できる値はコンストラクタの場合と同じです。
実際の使い方は次のようになります。
JSlider slider = JSlider(10, 1000); slider.setOrientation(JSlider.VERTICAL);
サンプルプログラム
では簡単なサンプルを作成して試してみます。
import javax.swing.*;
import java.awt.BorderLayout;
import javax.swing.event.*;
public class JSliderTest5 extends JFrame implements ChangeListener{
  JSlider slider;
  JLabel label;
  public static void main(String[] args){
    JSliderTest5 frame = new JSliderTest5();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setBounds(10, 10, 300, 270);
    frame.setTitle("タイトル");
    frame.setVisible(true);
  }
  JSliderTest5(){
    slider = new JSlider();
    slider.setOrientation(JSlider.VERTICAL);
    slider.addChangeListener(this);
    JPanel p = new JPanel();
    p.add(slider);
    label = new JLabel();
    label.setText("値:" + slider.getValue());
    getContentPane().add(p, BorderLayout.CENTER);
    getContentPane().add(label, BorderLayout.PAGE_END);
  }
  public void stateChanged(ChangeEvent e) {
    label.setText("値:" + slider.getValue());
  }
}
上記をコンパイルした後で実行すると次のように表示されます。
			
			
なおスライダーを縦方向に設定した場合は、一番下が最小値で一番上が最大値となります。
			
			
			
			
( Written by Tatsuo Ikura )
				著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。