SWT Simple Tree Example

SWT Tree Example

Tree객체는 Composite을 상속받고 있기 때문에 Shell에 바로 등록가능하다.

Tree는 기본적으로 TreeItem을 추가하여 동작한다. TreeItem생성시 첫번째 인자에 의해서 부모객체가 결정된다.

Tree tree = new Tree(parent, SWT.NONE);

TreeItem item1 = new TreeItem(tree, SWT.NULL); // root 트리 노드가 됨

TreeItem item2 = new TreeItem(item1, SWT.NULL); // item1의 자식노드가 됨


또한 Tree 생성시 Tree의 두번째 인자에 따라서 Tree의 모양이 결정된다. 주로 사용되는 속성은 다음과 같다.

Tree tree = new Tree(parent, SWT.SINGLE) // 기본트리

Tree tree = new Tree(parent, SWT.MULTI) // Ctrl+클릭으로 멀티 선택이 가능한 트리

Tree tree = new Tree(parent, SWT.MULTI|SWT.CHECK) // 체크박스와 멀티선택이 가능한 트리



[소스코드]

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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;
 
public class SWTSimpleTree {
  Display display = new Display();
  Shell shell = new Shell(display);
  
  Tree tree;
 
  public SWTSimpleTree() {
      
    shell.setLayout(new GridLayout());
    shell.setText("Simple Tree");
    
    tree = new Tree(shell, SWT.BORDER);
    tree.setLayoutData(new GridData(GridData.FILL_BOTH));
    
    // TreeItem 생성시 첫 번째 인자는 parent를 의미
    //  : tree 객체를 지정시 rootElement가 된다.
    TreeItem item = new TreeItem(tree, SWT.NULL);
    item.setText("ITEM");
    
    // TreeItem 생성시 첫 번째 인자는 parent를 의미
    //  : 다른 TreeItem 객체를 지정시 대상  TreeItem의 하위객체가 된다.
    TreeItem item2 = new TreeItem(item, SWT.NULL);
    item2.setText("ITEM2");
    
    TreeItem item3 = new TreeItem(item2, SWT.NULL);
    item3.setText("ITEM3");
    
    TreeItem item4 = new TreeItem(tree, SWT.NULL);
    item4.setText("ITEM4");
    
    TreeItem item5 = new TreeItem(item4, SWT.NULL);
    item5.setText("ITEM5");
    
    
    System.out.println("item: " + item.getParent() + ", " + item.getParentItem());
    System.out.println("item2: " + item2.getParent() + ", " + item2.getParentItem());
    
    System.out.println(tree.getItemCount());
    System.out.println(tree.getItems().length);
    
    shell.setSize(300200);
    shell.open();
 
    // Set up the event loop.
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch()) {
        display.sleep();
      }
    }
 
    display.dispose();
  }
 
  public static void main(String[] args) {
    new SWTSimpleTree();
  }
}
 
 
cs


[결과화면]



출처 : http://www.java2s.com/Code/Java/SWT-JFace-Eclipse/Tree.htm

http://wiki.eclipse.org/JFaceSnippets

참고

이 글을 공유하기

댓글

Email by JB FACTORY