Combo 위젯
Combo 컨트롤은 콤보박스를 생성하는 데 사용합니다. 사용자는 선택목록에서 하나를 선택할 수 있습니다.
Combo 컨트롤은 세 가지 스타일이 있습니다.
- SIMPLE (default) : 편집 가능한 텍스트 필드를 가장 위에 놓고 아래에 선택 항목이 있는 리스트 박스를 포함합니다.
- DROP_DOWN : 오른쪽에 화살표가 있는 편집 가능한 텍스트 필드입니다. 화살표를 클릭하면 선택 항목들을 보여주고, 사용자가 그 중 하나를 선택하도록 해줍니다.
- READ_ONLY : 편집할 수 없는 드롭다운 콤보의 텍스트 필드입니다. 이 스타일은 사용자의 선택 사항을 제한할 때 사용합니다. 디폴트로는 아무것도 선택되어 있지 않습니다. 만약 첫 번째 사항을 디폴트로 하기 위해서는 select(0)을 호출해야 합니다.
이 스타일은 생성자의 SYTLE.* 속성을 통해서 설정하며, 서로 같이 사용될 수 없습니다.
예제코드를 통해 각 콤보박스의 스타일을 비교하여 확인해 봅시다.
<예제코드>
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
|
package com.swtjface.ch5;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
/**
* 2010.06.29
* 콤보 콤포지트
* @author cremazer
*
*/
public class Ch5ComboComposite extends Composite {
/*
* 생성자
*/
public Ch5ComboComposite(Composite parent) {
super(parent, SWT.NONE);
buildControls();
}
protected void buildControls(){
setLayout(new RowLayout());
//콤보박스 스타일별로 배열로 저장
int [] comboStyles = {SWT.SIMPLE,
SWT.DROP_DOWN,
SWT.READ_ONLY};
//스타일별로 콤보 박스 생성 후 아이템추가
for(int idxComboStyle = 0 ; idxComboStyle < comboStyles.length ; idxComboStyle++){
Combo combo = new Combo(this, comboStyles[idxComboStyle]);
combo.add("Item #1");
combo.add("Item #2");
combo.add("Item #3");
//콤보박스의 첫번째 항목을 선택하도록 설정
combo.select(0);
}
}
}
|
<테스트 코드>
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
|
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;
/**
* 2010.06.29
* 콤보박스 테스트
* @author cremazer
*/
public class WidgetWindow extends ApplicationWindow {
public WidgetWindow(){
super(null);
}
protected Control createContents(Composite parent){
Ch5ComboComposite cc = new Ch5ComboComposite(parent);
getShell().setText("Widget Window");
return parent;
}
public static void main(String[] args) {
WidgetWindow wwin = new WidgetWindow();
wwin.setBlockOnOpen(true);
wwin.open();
Display.getCurrent().dispose();
}
}
|
<결과>
참고서적 : SWT/JFace in Action
댓글 없음:
댓글 쓰기