「Java/swing/サンプル/JSliderサンプル」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
* JSliderサンプル
* 基本形
&ref(JSliderSample1.png)
* サンプルソース &ref(JSliderSample1.java)
デフォルトコンストラクタでは0から100で初期値50のスライダーが作成されます。
#highlight(java){{
JSlider s = new JSlider();
frame.add(s);
}}
setValue()でスライダに値を設定できます。
getValue()でスライダの現在の値を取得できます。
#highlight(java){{
s.setValue(100);
f.setText("" + s.getValue());
}}
ChangeListenerを追加すると、スライダを操作した時のイベントを受け取れます
#highlight(java){{
s.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
// 変更後の値をJTextFieldに設定してみます
textField.setText("" + s.getValue());
}
});
}}
* 縦置きのスライダー サンプル&ref(JSliderSample2.java)
&ref(JSliderSample2.png)
#highlight(java){
// 縦置きスライダー
JSlider slider = new JSlider(JSlider.VERTICAL);}
* スライダのサイズ変更 サンプル&ref(JSliderSample3.java)
&ref(JSliderSample3.png)
スライダのサイズを変更するには、setPreferredSize()を使います。
#highlight(java){
JSlider s = new JSlider();
s.setPreferredSize(new Dimension(100, 30);}
getPrefferedSize()で初期値を取得して横幅だけ変更することもできます。
#highlight(java){
JSlider s = new JSlider();
Dimension d = s.getPreferredSize();
d.setSize(100, d.height);
s.setPreferredSize(d);
add(s);
}
* マウスを離した時のイベント
&ref(JSliderSample4.png)
普通にChangeListenerを使うと、スライダ操作中リアルタイムにイベントが発生します
JSliderにはマウスを離した瞬間のイベントは無いそうなので、
JSlider#getValueIsAdjustingで「現在マウスで操作中か」を判定します
* サンプル &ref(JSliderSapmle4.java)
#highlight(java){{
add(new JLabel("マウスを離した時に反応するスライダ"));
slider1 = new JSlider();
slider1.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
if (!slider1.getValueIsAdjusting()) {
// マウスで掴んでる間はgetValueIsAdjusting()でtrueが返って来ます
// マウスを離すとfalseが返ります
textField1.setText("マウス離した" + slider1.getValue());
}
}
});
}}
* JSliderサンプル
* 基本形
&ref(JSliderSample1.png)
* サンプルソース &ref(JSliderSample1.java)
デフォルトコンストラクタでは0から100で初期値50のスライダーが作成されます。
#highlight(java){{
JSlider s = new JSlider();
frame.add(s);
}}
setValue()でスライダに値を設定できます。
getValue()でスライダの現在の値を取得できます。
#highlight(java){{
s.setValue(100);
f.setText("" + s.getValue());
}}
ChangeListenerを追加すると、スライダを操作した時のイベントを受け取れます
#highlight(java){{
s.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
// 変更後の値をJTextFieldに設定してみます
textField.setText("" + s.getValue());
}
});
}}
* 縦置きのスライダー サンプル&ref(JSliderSample2.java)
&ref(JSliderSample2.png)
#highlight(java){
// 縦置きスライダー
JSlider slider = new JSlider(JSlider.VERTICAL);}
* スライダのサイズ変更 サンプル&ref(JSliderSample3.java)
&ref(JSliderSample3.png)
スライダのサイズを変更するには、setPreferredSize()を使います。
#highlight(java){
JSlider s = new JSlider();
s.setPreferredSize(new Dimension(100, 30);}
getPrefferedSize()で初期値を取得して横幅だけ変更することもできます。
#highlight(java){
JSlider s = new JSlider();
Dimension d = s.getPreferredSize();
d.setSize(100, d.height);
s.setPreferredSize(d);
add(s);
}
* マウスを離した時のイベント
&ref(JSliderSample4.png)
普通にChangeListenerを使うと、スライダ操作中リアルタイムにイベントが発生します
JSliderにはマウスを離した瞬間のイベントは無いそうなので、
JSlider#getValueIsAdjustingで「現在マウスで操作中か」を判定します
* サンプル &ref(JSliderSample4.java)
#highlight(java){{
add(new JLabel("マウスを離した時に反応するスライダ"));
slider1 = new JSlider();
slider1.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
if (!slider1.getValueIsAdjusting()) {
// マウスで掴んでる間はgetValueIsAdjusting()でtrueが返って来ます
// マウスを離すとfalseが返ります
textField1.setText("マウス離した" + slider1.getValue());
}
}
});
}}