슬라이더(Slider)
Slider 컨트롤은 윈도우의 스크롤바와 비슷합니다. 스크롤바는 스크롤하는 항목과 연결되어 있고 해당 문맥 밖에서의 사용은 불가능하지만, Slider는 정수 범위에서의 어떤 값을 선택하기 위한 컨트롤로 사용한다는 점에서 둘은 서로 다릅니다.
- Slider의 선택값의 범위는 setMinimum()과 setMaximum() 메서드로 설정합니다.
- 클릭하거나 드래그할 수 있는 사각형 슬라이더는 썸(thumb)이라 합니다.
- setThumb() 메서드를 통해 썸의 크기를 설정하는 값은 정수여야 합니다.
- 썸의 크기는 Slider 전체 범위 중 썸의 크기만큼의 비율로 결정됩니다. 만약 범위가 0~100 이고, 썸의 크기가 10 이라면, 썸은 Slider 컨트롤의 10%의 크기가 됩니다.
- 양쪽 끝의 화살표는 증가분(increment)으로 설정한 만큼 썸을 움직입니다.
- 썸과 화살표 사이의 공간을 클릭하면 페이지 증가분(pageIncrement)만큼 썸을 이동합니다.
setValues() 메서드는 위에서 언급한 Slider와 연관된 모든 값을 한번에 설정합니다.
/*
* int selection : 썸(thumb)의 초기위치
* int minimum : 최소값
* int maximum : 최대값
* int thumb : 썸의 크기
* int increment : 끝의 화살표 이동값
* int pageIncrement : 페이지 증가분
*/
setValues(int selection, int minimum, int maximum, int thumb, int increment, int pageIncrement);
▶ 예제코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
package com.swtjface.Ch5;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.DragDetectEvent;
import org.eclipse.swt.events.DragDetectListener;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Slider;
/**
* 슬라이더는 스크롤바와 비슷하다.
*
* @since 2013. 6. 8.
* @author Cremazer
*
*/
public class Ch5Slider extends Composite {
Label label;
public Ch5Slider(Composite parent) {
super(parent, SWT.NONE);
setLayout(new FillLayout());
label = new Label(this, SWT.CENTER|SWT.BORDER);
label.setBounds(30,60,110,15);
final Slider slider = new Slider(this, SWT.HORIZONTAL);
/*
* int selection : 썸(thumb)의 초기위치
* int minimum : 최소값
* int maximum : 최대값
* int thumb : 썸의 크기
* int increment : 끝의 화살표 이동값
* int pageIncrement : 페이지 증가분
*/
slider.setValues(1000, 400, 1600, 200, 10, 100);
slider.addDragDetectListener(new DragDetectListener() {
@Override
public void dragDetected(DragDetectEvent arg0) {
setText(slider.getSelection());
}
});
}
protected void setText(int selection) {
label.setText(String.valueOf(selection));
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
package com.swtjface.Ch5;
import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
/**
* 슬라이더 테스트
*
* @since 2013. 6. 8.
* @author Cremazer
*
*/
public class Ch5SliderTest extends ApplicationWindow {
public Ch5SliderTest() {
super(null);
}
protected Control createContents(Composite parent) {
Ch5Slider slider = new Ch5Slider(parent);
getShell().setText("Widget Window");
return parent;
}
public static void main(String[] args) {
Ch5SliderTest tc = new Ch5SliderTest();
tc.setBlockOnOpen(true);
tc.open();
Display.getCurrent().dispose();
}
}
|
댓글 없음:
댓글 쓰기