swingコンポーネント->JSlider

JSliderは最小値と最大値の中間値を表示するために使われます。
マウスを使ってノブをクリックしてスライダー上をドラッグするとノブの位置の値を操作できます。
大目盛りや小目盛り、ラベルの表示をすることができます。


コンストラクタ(抜粋)
JSlider()
 デフォルト(範囲0〜100、初期値50の水平)のJSliderオブジェクトを生成します。
JSlider(int ori)
 スライダの方向を指定してJSliderオブジェクトを生成します。
  垂直・・SwingConstants.VERTICAL 
  水平・・SwingConstants.HORIZONTAL
JSlider(int min,int max)
 最小値minと最大値maxを指定してJSliderオブジェクトを生成します。
JSlider(int min,int max,int val)
 最小値min、最大値maxと初期値valを指定してJSliderオブジェクトを生成します。
 
メソッド(抜粋)
int getValue()
 スライダーの値を取得します。
void setValue(int value)
 スライダーの値を設定します。
void setPaintLabels(boolean b)
 ラベルを表示するかしないかを設定します。
void setPaintTicks(boolean b)
 目盛りを表示するかしないかを設定します。
void setMaximum(int max)
 スライダーの最大値を設定します。
void setMinimum(int min)
 スライダーの最小値を設定します。
int getMaximum()
 スライダーの最大値を取得します。
int getMiniimum()
 スライダーの最小値を取得します。
void addChageListener(ChangeListener l)
 ChangeListenerを設定します。

クリックして下さい。

(ボタンをクリックするとスライダが表示されます。)

JSlider.java

import java.awt.*;  
import java.awt.event.*;  
import javax.swing.*;  
import javax.swing.event;  
public class JSlider extends Frame implements ChangeListener{  
   Container contentPane;  
   JSlider slider = new JSlider(); ← @インスタンス生成
    JLabel lbl = new JLabel("50");  
  public JButtonSample1() {  
      super("Slider");  
     addWindowAdapter(new WindowListener() {  
       public void windowClosing(WindowEvent e) {  
          System.exit(0);  
       }  
     });  
     contentPane = getContentPane();  
     contentPane.setLayout(new BorderLayout());  
     contentPane.add(BorderLayout.CENTER,slider);  
     contentPane.add(BorderLayout.SOUTH,lbl);  
     slider.addChangeListener(this); ← Aリスナの登録
     pack();  
     setVisible(true);  
   }  
  pubic void stateChanged(ChangeEvent e){ ← B
      int val = slider.getValue(); ← Cスライダの値を取得
      lbl.setText(Integer.toString(val)); ← Dラベルに値をセット
  }  
  public static void main(String[] args) {  
    JSlider myClass = new JSlider();  
    }  
}  
   
@インスタンスの生成  JSlider slider = new JSlider();
 JSliderのインスタンスを生成しています。
Aスライダにリスナを登録 slider.addChangeListener(this);
 スライダの値が変わったときに発生するChangeEventをどのオブジェクトが処理するかをaddChangeListenerメソッドで 設定します。
Bpubic void stateChanged(ChangeEvent e){}
  ChangeListenerをimplementsしたクラスはstateChangedメソッドを定義します。
 このメソッドの中にスライダの値が変化したときに行う処理を記述します。
Cint val = slider.getValue();
 
int型の変数valにスライダの値を取得し代入しています。
Dlbl.setText(Integer.toString(val);
 ラベル(lbl)に変数val設定しています。
 ※変数valはint型なので、Integer.toString()で文字列にしています。
もどる