SWT 树的展开事件 SWT.VIRTUAL SWT.SetData

原程序:Snippet202

 

public class Snippet202 {
	public static void main(String[] args) {
		Display display = new Display();
		final Shell shell = new Shell(display);
		shell.setLayout (new FillLayout());
		final Tree tree = new Tree(shell, SWT.VIRTUAL | SWT.BORDER);
		// 生成节点的总是
		final int[] iArr = new int[1];
		tree.addListener(SWT.SetData, new Listener() {
			public void handleEvent(Event event) {
				System.out.println("Create the "+(++iArr[0]) +" item.");
				TreeItem item = (TreeItem)event.item;
				TreeItem parentItem = item.getParentItem();
				String text = null;
				if (parentItem == null) {
					text = "node "+tree.indexOf(item);
				} else {
					text = parentItem.getText()+" - "+parentItem.indexOf(item);
				}
				item.setText(text);
				// 设置可以接受几个子节点
				item.setItemCount(3);
			}
		});
		// 自动生成几个根节点
		tree.setItemCount(5);
		shell.setSize(400, 300);
		shell.open();
		while (!shell.isDisposed ()) {
			if (!display.readAndDispatch ()) display.sleep ();
		}
		display.dispose ();
	}
}

 

 

注意点:

1,Tree必须设置为SWT.VIRTUAL

2,必须处理SWT.SetData事件

3,tree.setItemCount(5);和item.setItemCount(3);

 

javadoc中对于SWT.VIRTUAL的解释是

TreeItems are to be populated by the client on an on-demand basis instead of up-front.

on-demand 一经要求、请求

up-front 在一开始

就是SWT.VIRTUAL树就是个虚的树,在得到用户、客户要求或者请求的时候才建立树的Item,而这些Item要设置有多少个子Item。



 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值