- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
public class TreeSample1 {
public static void main(String[] args){
Display display = new Display ();
Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
shell.setText("Tree Sample1");
Tree tree = new Tree(shell,SWT.BORDER);
// ルートとなる要素を追加
TreeItem root = new TreeItem(tree,SWT.NULL);
root.setText("Root");
// ルートの子要素を追加
TreeItem item1 = new TreeItem(root,SWT.NULL);
item1.setText("Item1");
// ルートの子要素を追加
TreeItem item2 = new TreeItem(root,SWT.NULL);
item2.setText("Item2");
shell.setSize(200,100);
shell.open();
while (!shell.isDisposed ()){
if (!display.readAndDispatch ()){
display.sleep ();
}
}
display.dispose ();
}
}
{{ref_image TreeSample1.gif}}
Treeのコンストラクタのスタイル指定でSWT.MULTIかSWT.SINGLEを指定することによって要素の複数選択を許可するかどうかを指定できます。
// 複数選択可能なツリーを作成
Tree tree = new Tree(shell,SWT.MULTI);
また、SWT.CHECKを指定することで、ツリーの各要素にチェックボックスを表示することができます。
// ツリーの各要素にチェックボックスを表示
Tree tree = new Tree(sShell, SWT.BORDER|SWT.CHECK);
TreeItem root = new TreeItem(tree, SWT.NULL);
root.setText("Root");
TreeItem child1 = new TreeItem(root, SWT.NULL);
child1.setText("Child1");
TreeItem child2 = new TreeItem(root, SWT.NULL);
child2.setText("Child2");
{{ref_image tree_check.png}}
以下にTreeとTreeItemの代表的なメソッドの使用例を示します。
// 要素数(直接の子要素の数)を取得
int itemCount = list.getItemCount();
// 直接の子要素を取得
TreeItem[] items = list.getItems();
// 選択されている要素の数を取得
int selectedCount = tree.getSelectionCount();
// 選択されている要素を取得し、削除
TreeItem[] selectedItems = tree.getSelection();
for(int i=0;i<selectedItems;i++){
selectedItems[i].dispose();
}
// 全ての要素を削除
tree.removeAll();
// 子要素を取得します
TreeItem[] children = item.getItems();
// 親要素を取得します
TreeItem parentItem = item.getParentItem();