2013년 12월 31일 화요일

SWT - Combo 위젯




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



댓글 없음:

댓글 쓰기