<更新記録>
2007年 12月 11日
作成

姉妹サイト検索 Web検索


Slider

スライダーとは

スライダーは、「スライド」をする人のことです。。 Sliderクラスは、この動作を提供します。 尚、Sliderはスライド動作のみを提供し、スクロール動作は提供しません。

Sliderは、ロジック的に5つの領域に分かれています。

  • (1)減少ボタン領域
  • (2)ページ減少領域
  • (3)つまみ領域
  • (4)ページ増加領域
  • (5)増加ボタン領域
(1)(4)の領域は、マウスでクリックして少しずつつまみの位置を減少/増加させる領域です。 (2)(5)の領域は、マウスでクリックすることで、大きくつまみの位置を減少/増加させる領域です。 (3)の位置は、つまみで、これをドラッグして任意の場所につまみを移動させる領域です。 (2)(3)(4)の領域は、サイズが動的に変化します。

Sliderのサンプル

各領域のサイズ等の設定は、それぞれのメソッドが用意されており、適切なメソッドの呼び出しで行うことができます。 また、すべてを同時に設定したい場合は、setValuesメソッドを使うことで、一括して設定することができます。 一括して設定することで、複数回メソッドを呼び出すオーバーヘッドを減少させたり、 ソースの可読性が向上したりするといったメリットがあります。

また、Sliderを作成するときに、SWT.VERTICALスタイルを設定することで、縦のSliderを作成することも可能です。

setThumb(int)メソッドは、OSによってはサポートされていない場合があります。 そのような環境では、つまみの大きさを調整できません。

import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.jface.window.Window;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Slider;

public class SliderDemonstrate extends ApplicationWindow {

	private SliderDemonstrate() {
		super(null);
	}
	
	protected Control createContents(Composite parent) {
		
		/* parentの子としてSlider作成 */
		Slider slider = new Slider(parent, SWT.HORIZONTAL);
		
		/* (2)(3)(4)の範囲を設定。後の設定メソッドは、ここで設定した値の影響を受ける。 */
		slider.setMaximum(99);
		slider.setMinimum(0);
		
		/* つまみ領域(3)の左端の位置を一番左に設定
		 * (maximumとniminumの間の範囲で指定可能) */
		slider.setSelection(0);
		
		/* つまみ領域(3)の大きさを設定。
		 * 領域は0から99までの100あるので、全体1/4のサイズになる */
		slider.setThumb(25);
		
		/* ボタン領域(1)(5)をクリックされたときのスライド量を指定 */
		slider.setIncrement(1);
		
		/* ページ領域(2)(4)をクリックされたときの
		 * スライド位置の減少/増加量設定 */
		slider.setPageIncrement(25);
		
		slider.pack();
		
		parent.pack();
		return parent;
	}
	
	public static void main(String[] args) {
		Window w = new SliderDemonstrate();
		w.setBlockOnOpen(true);
		w.open();
		Display.getCurrent().dispose();
	}
}


Powered by VeryEasyCMS