Java/순수 Java

[Java] SWT Tree 사용 예제

기은P 2020. 3. 12. 15:20
반응형
SWT Tree

Java의 SWT의 아주 간단한 Tree 예제다.

Tree를 사용하고 싶은데 어떻게 생성해야할지 모를때 참고하면 좋을 것 같다.

 

기본적으로 Tree가 Root가 되고

TreeItem이 Root아래로 자식을 추가해나가는 그런 흐름이라고 생각하면 된다.

TreeItem은 TreeItem을 자식으로 둘 수가 있어,

단계별로 트리가 확장이 되어 간다.

 

org.eclipse.swt.widgets.TreeItem.TreeItem(TreeItem parentItem, int style)가 사용된 함수인데,

style에는 SWT.SINGLE, SWT.None, SWT.NULTI가 들어간다.

트리의 스타일을 정의하는 것인데, 애매할 때는 None으로 두면 된다.

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 SWTTree {
	Display display = new Display();
	Shell shell = new Shell(display);

	Tree tree;
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new SWTTree();
	}


	public SWTTree() {	      
	    shell.setLayout(new GridLayout()); // 레이아웃 설정 => GridLayout
	    shell.setText("Application");
	    
	    tree = new Tree(shell, SWT.BORDER); // 트리 생성(Shell Base)
	    tree.setLayoutData(new GridData(GridData.FILL_BOTH)); // GridLayout에 어떤 식으로 배치할 건지?
	    
	    // 트리 아이템 생성. tree의 자식 요소로 생성한다.
	    TreeItem item = new TreeItem(tree, SWT.MULTI);
	    item.setText("1단계 트리");
	    
	    // 1단계 트리의 자식 노드 요소로 생성한다.
	    TreeItem item2 = new TreeItem(item, SWT.MULTI);
	    item2.setText("2단계 트리");
	    
	    // ...
	    TreeItem item3 = new TreeItem(item2, SWT.MULTI);
	    item3.setText("3단계 트리");
	    
	    // ...
	    TreeItem item4 = new TreeItem(tree, SWT.MULTI);
	    item4.setText("1단계 트리");
	    
	    TreeItem item5 = new TreeItem(item4, SWT.MULTI);
	    item5.setText("2단계 트리");   
	    
	    
	    shell.setSize(300, 300);
	    shell.open();
	 
	    while (!shell.isDisposed()) {
	      if (!display.readAndDispatch()) {
	        display.sleep();
	      }
	    }	 
	    display.dispose();
	  }

}

 

결과 모습

 

반응형