スクロールバー
バーから値を得る
何らかの値を直感的にユーザーに入力させるのに適したインタフェイスがスクロールバーです
たとえば、色の設定などでは三原色をスクロールバーで入力させるケースが多いですね
スクロールバーを生成するにはjava.awt.Scrollbarクラスを使用します
以下のコンストラクタがあります
public Scrollbar()
public Scrollbar( int orientation )
public Scrollbar( int orientation, int value, int visible, int minimum, int maximum )
パラメータに何も指定しない場合は、垂直スクロールバーを生成します
orientationにはスクロールバーの方向を定数で指定します
value似はスクロールバーの初期値、visibleにはページアップやダウン時に使用されるサイズ
minimumには最小値、maximumには最大値を指定します
バーの方向を指定する定数は、同クラスに次のように指定されています
public static final int HORIZONTAL | 水平スクロールバー
|
public static final int VERTICAL | 垂直スクロールバー
|
リスナの追加はaddAdjustmentListener()が定義されています
public synchronized void addAdjustmentListener( AdjustmentListener lis )
lisには追加するリスナを指定します
ここで出てきたjava.awt.event.AdjustmentListenerインターフェイスは
調整値が変更されると呼び出されるadjustmentValueChanged()メソッドが宣言されています
public abstract void adjustmentValueChanged( AdjustmentEvent e )
イベント元の値を得るには、ここで受け取るjava.awt.event.AdjustmentEventクラスを利用できます
イベント元のオブジェクトはgetAbjustable()メソッドを
調整イベント中の現在の値はgetValue()で得ることができます
public Adjustable getAdjustable()
public int getValue()
getAbjustable()メソッドが返すのはjava.awt.Adjustableインターフェイスです
これはScrollbarクラスがインプリメントしています
getValue()は、調整イベント中の現在の値を返します
スクロールバーの現在の値を得るのに、getValue()メソッドはScrollbarクラスにも用意されています
内容はAdjustmentEventクラス同様に、現在の値をint型で返します
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
/* <applet code="App39.class" width="300"height="300">
</applet>
*/
public class App39 extends Applet implements AdjustmentListener {
Scrollbar bar[] = new Scrollbar[3];
public void init() {
setBackground(Color.white);
for (int i = 0 ; i < 3 ; i++) {
bar[i] = (Scrollbar)add(new Scrollbar(
Scrollbar.HORIZONTAL , 255 , 0 , 0 , 255));
}
bar[0].addAdjustmentListener(this);
bar[1].addAdjustmentListener(this);
bar[2].addAdjustmentListener(this);
}
public void adjustmentValueChanged(AdjustmentEvent e) {
setBackground(new Color(
bar[0].getValue() , bar[1].getValue() , bar[2].getValue()));
}
}
スクロールバーを移動させると、背景色が変化します
最初のバーが赤(R)、次が緑(G)、最後のバーが青(B)です