`

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。



 

 

 

  • 大小: 4.8 KB
分享到:
评论

相关推荐

    学习SWT,RCP的笔记.doc

    ### SWT与RCP基础知识 #### 一、SWT概述 SWT(Standard Widget Toolkit)是一种专为Java设计的用户界面工具包,它提供了一系列的原生控件来创建丰富的客户端应用。SWT的一个显著特点在于它能直接调用操作系统的GUI...

    SWT入门.docx

    首先,使用SWT需要下载相应的jar包,例如`org.eclipse.swt.win32.win32.x86_64_3.104.2.v20160212-1350.jar`,这适用于Windows 64位系统。如果你使用Eclipse IDE,可以从库中直接导入SWT库。 `Display`类是SWT中...

    js 剪切板的用法(clipboardData.setData)与js match函数介绍

    在JavaScript中,我们可以通过`clipboardData.setData()`方法来实现复制内容到剪切板的功能。该方法接受两个参数:`sDataFormat`和`sData`。`sDataFormat`定义了数据的格式,如`"text"`表示纯文本,而`sData`则是...

    基于SWT处理大量数据的表(Table)和树(Tree)

    1. 创建虚拟表或树:需要在构造函数的风格参数里指定SWT.VIRTUAL。 2. 注册监听器:需要注册SWT.SetData监听器,以便在需要时创建项。 3. 获取项目数量:需要指定项目的数量,以便设置表的垂直流动条的最大值。 4. ...

    微信Page.prototype.setData() 函数封装使用实例.rar

    演示微信小程序开发对 Page.prototype.setData() 函数的封装的例子,作者:云淡风轻。  比如显示/隐藏、添加样式、移除样式、添加class、绑定事件、移除事件、重新注册事件源、列表绑定事件等。

    微信小程序报错:this.setData is not a function的解决办法

    "微信小程序报错:this.setData is not a function的解决办法" 微信小程序报错:this.setData is not a function是一个常见的错误,特别是在使用微信小程序开发时。在这个错误中,this.setData变成了undefined,...

    微信小程序中this.data与this.setData的区别详解

    小程序中我们会经常使用到this.data与this.setData。其中this.data是用来获取页面data对象的,而this.setData是用来更新界面的。那么他们之间的区别与联系你真的搞懂了吗? Page.prototype.setData() setData 函数...

    小程序中this.setData的使用和注意事项

    当页面加载时,可以在onLoad事件中使用this.setData来初始化数据。例如: ```javascript onLoad: function() { this.data.test02 = 10; this.setData({ test02 }); } ``` 在这个过程中,我们需要注意,直接...

    QTreeWidgetItem的setData(int column,int role,QVariant& data)等,

    比如QTableWidgetItem的setData(int column,QVariant& data)和QTreeWidgetItem的setData(int column,int role,QVariant& data)等,通过setData函数我们可以为每个单元格保存自己想绑定的数据及为每个树节点保存想...

    微信小程序错误this.setData报错及解决过程

    在微信小程序开发过程中,开发者可能会遇到“this.setData is not a function”的错误,这通常是由于JavaScript中的作用域问题导致的。本文将深入解析这个问题的原因,并提供有效的解决方案。 首先,我们需要了解...

    新版的wepy已经废弃了setData - 副本.zip

    6. **package-lock.json**和**package.json**: 包含项目的依赖管理和版本锁定信息,`package-lock.json`是npm 5及以上版本产生的,确保团队成员在安装依赖时得到一致的依赖树。 7. **project.config.json**: 微信小...

    微信小程序 setData使用方法及常用错误解决办法

    在微信小程序中,`setData` 是用于更新页面数据的关键方法,它允许开发者将数据从 JavaScript 层传递到 WXML(微信小程序的结构层),从而驱动页面视图的更新。然而,`setData` 在处理数组对象时有一些特殊的规定,...

    小程序SetData()方法使用

    在微信小程序开发中,`setData()` 是一个至关重要的方法,用于在小程序的页面实例中更新数据。这个方法允许开发者将数据从逻辑层传递到视图层,触发页面的重新渲染。接下来,我们将深入探讨 `setData()` 的使用、...

    威纶通触摸屏宏指令GetData和SetData函数的使用方法示例.docx

    本文将详细介绍如何使用威纶通触摸屏宏指令中的GetData和SetData函数,这两个函数分别用于从设备读取数据和向设备写入数据。 首先,我们来看GetData函数的使用。GetData函数的主要作用是从触摸屏或外部设备(如PLC...

    展开关闭.zip微信小程序原生展开关闭效果

    综上所述,"展开关闭.zip"示例主要涵盖了微信小程序中的事件处理、数据绑定、状态管理以及CSS样式控制等方面的知识。通过学习和实践这一效果,开发者可以更好地掌握微信小程序的开发技巧,提升用户交互体验。

Global site tag (gtag.js) - Google Analytics