■ swingコンポーネント->JSlider |
JSliderは最小値と最大値の中間値を表示するために使われます。 マウスを使ってノブをクリックしてスライダー上をドラッグするとノブの位置の値を操作できます。 大目盛りや小目盛り、ラベルの表示をすることができます。 |
|
|||||||||
コンストラクタ(抜粋) | ||||||||||
|
||||||||||
メソッド(抜粋) | ||||||||||
|
||||||||||
|
||||||||||
クリックして下さい。 |
||||||||||
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()で文字列にしています。 |
||||||||||
もどる |