スライダーの方向を設定する

広告

スライダーはデフォルトでは水平方向に表示されていますが、垂直方向のスライダーを作成することも可能です。

スライダーの方向を設定するにはコンストラクタで指定する方法とメソッドを使う方法があります。まずはコンストラクタで設定する方法を確認します。

方向を指定して、範囲が 0 ~ 100、初期値が 50 のスライダを作成します。方
向は、SwingConstants.VERTICAL または SwingConstants.HORIZONTAL になりま
す。

パラメータ:
  orientation - スライダの方向 
例外: 
  IllegalArgumentException - 方向が VERTICAL または HORIZONTAL のどちら
    でもない場合

引数にはスライダーの方向を設定します。設定できる値は次のどちらかです。

方向
JSlider.VERTICALERT垂直方向
JSlider.HORIZONTAL水平方向

実際の使い方は次のようになります。

JSlider slider = JSlider(JSlider.VERTICALERT);

また方向だけでなく最小値、最大値、初期値をまとめて指定できるコンストラクタも用意されています。

方向、最小値、最大値、および初期値を指定して、スライダを作成します。方
向は、SwingConstants.VERTICAL または SwingConstants.HORIZONTAL になり
ます。

スライダの最小値、初期値、および最大値として設定された値が適切でないた
めに問題が発生した場合は、スライダのデータを保持する BoundedRangeModel
がその問題を処理します。詳細は、BoundedRangeModel のドキュメントを参照
してください。

パラメータ:
  orientation - スライダの方向
  min - スライダの最小値
  max - スライダの最大値
  value - スライダの初期値 
例外: 
  IllegalArgumentException - 方向が VERTICAL または HORIZONTAL のどちら
    でもない場合

引数にはスライダーの方向、最小値、最大値、初期値をそれぞれ指定します。

メソッドで指定する

JSliderクラスのオブジェクトを作成してからメソッドを使ってスライダーの方向を設定することも可能です。JSliderクラスで用意されている「setOrientation」メソッドを使います。

スライダの方向を newOrientation (SwingConstants.VERTICAL または 
SwingConstants.HORIZONTAL) に設定します。

パラメータ:
  orientation - HORIZONTAL または VERTICAL 
例外: 
  IllegalArgumentException - 方向が VERTICAL または HORIZONTAL のどちら
    でもない場合

引数にはスライダーの方向を指定します。指定できる値はコンストラクタの場合と同じです。

実際の使い方は次のようになります。

JSlider slider = JSlider(10, 1000);

slider.setOrientation(JSlider.VERTICAL);

サンプルプログラム

では簡単なサンプルを作成して試してみます。

JSliderTest5.java

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());
  }
}

上記をコンパイルした後で実行すると次のように表示されます。

JSliderで方向を設定する

なおスライダーを縦方向に設定した場合は、一番下が最小値で一番上が最大値となります。

JSliderで方向を設定する

JSliderで方向を設定する

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)