下面是我刚考完研,本科毕业后进入实验室,写的一些东西,今天突然看到,就发出来,做为学习笔记
import java.io.File;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;
public class VirtualTree {
/**
* @param args
* 文件系统浏览程序。
* 这个程序是网上找的,他说是对付大的数据的树目录显示问题相当有效
*/
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
final Tree tree = new Tree(shell, SWT.VIRTUAL | SWT.BORDER); //通过指定SWT.VIRTUAL风格创建一个虚拟树。
//获取文件系统的顶级文件入口,并将它们作为模型数据存储在树中。
File[] roots = File.listRoots();//能获取电脑各盘(A:C:D:E:F:)
tree.setData(roots);
tree.addListener(SWT.SetData, new Listener() { //向对添加一个SWT.SetData监听器,每当访问item域时,该监听器负责对项目设置数据。
public void handleEvent(Event event)
{
TreeItem item = (TreeItem) event.item;
TreeItem parentItem = item.getParentItem(); //获取项目的父项目,父项目包含了当前的文件入口。
File file = null;
if (parentItem == null) //这种情况是TreeItem为顶级项目,所以它的文件入口是根据索引从树中获取,并且设置它的文本。项目相对于父项目的索引可以在事件的index域中找到。
{
/* root-level item */
File[] files = (File[]) tree.getData();
file = files[event.index];
item.setText(file.toString());//列举盘符时,要用file.toString(),不能用file.getName()
}
else //这种情况是TreeItem不是一个顶级项目,所以它的文件入口是根据索引从父项目中获取,并且设置它的文本。
{
File[] files = (File[]) parentItem.getData();
file = files[event.index];
item.setText(file.getName());
}
if (file.isDirectory()) //如果项目代表一个目录,那么获取它的子文件系统入口,并且作为项目的模型数据存储在数据中。
{
File[] files = file.listFiles();
if (files != null)
{
item.setData(files);
item.setItemCount(files.length);//设置项目子项数量。这将确保在项目旁边显示展开图标,并且当用户展开它时,能够创建正确数量的子项。
}
}
}
});
tree.setItemCount(roots.length);
shell.open();
while(!shell.isDisposed())
{
if(!display.readAndDispatch())
display.sleep();
}
}
}
//总结
//虚拟表和虚拟树提供了一个简单的方式来按需填充控件。它将大大减少计算工作量和内在消耗,可以使界面处理大数据集时保持快速响应。
分享到:
相关推荐
红黑树在 Linux 虚拟内存区域管理中的应用主要体现在三个方面:红黑树的定义和优点、Linux 中 VMA 的相关内容、红黑树在 Linux 内核中的实现。红黑树的高效操作使其成为 Linux 内核中虚拟存储区域管理的首选算法。
体特征表达对用户理解和认知虚拟环境有着至关重要的作用。当前的体特征表达算法由于存储量大且不易于在GPU中加速等问题,渲染效率低下,难以满足场景可视化的实时性需求。针对这一问题,提出了一种高效的高度场八叉...
数据结构课程设计--动态查找表 用二叉排序树实现动态查找表的虚拟数据类型
虚拟表和树允许开发人员快速创建具有大量数据的表(Table)和树(Tree),并且能够有效地进行填充。本文概述了如何在SWT应用程序中使用虚拟表和树。
本文将进行数据采集和预处理,从数据中选择并提取出重要特征,并使用树模型中随机森林和梯度提升树两种算法来实现W plug中对电阻率的虚拟测量。实验结果表明,本文提出的方法与传统算法相比,测量误差减少近50%,...
红黑树的应用非常广泛,例如 Epoll 实现、Java 集合中的 TreeSet 和 TreeMap、C++ STL 中的 set、map,以及 Linux 虚拟内存的管理,都是通过红黑树去实现的。 红黑树在 HashMap 中的应用可以提高查找、插入和删除...
3、装配的基本概念 装配:按规定的技术要求,将零部件进行配合和连接,使之成为半成品或成品的工艺过程称为装配。 "地"——装配既然表达产品零部件之间的配合关系,必然存在着参照与被参照的关系。在装配设计中有一...
一个二叉树是由一个根节点和两个子树组成的,每个节点都含有一个数据元素和两个指针,分别指向左子树和右子树。二叉树的结构可以用递归的方式来定义,即每个节点的左子树和右子树也是二叉树。 横向打印二叉树算法 ...
在我们的方法中,决策树由虚拟3D树模型表示,可以清晰显示结构和分类结果。另外,随机森林由一组虚拟3D树表示,它们的位置表示决策树之间的相似性。我们还在系统中提供了几种用户交互工具。这些工具可帮助用户浏览...
3.1.3 磁盘索引节点表 105 3.2 VFS接口数据结构 110 3.2.1 Ext2 超级块对象 110 3.2.2 Ext2 的索引节点对象 121 3.2.3 创建Ext2文件系统 124 3.2.4 Ext2的方法总结 126 3.3 Ext2索引节点分配 129 3.3.1 创建索引节点...
多数据快速渲染,虚拟渲染 固定表头 固定列 表头排序 表头分组 树形数据展示 固定行至顶部或者底部 子表格订制 表头自由排序 表格数据选择 API Table Props props describe type default value show bordered ...
虚拟线性表 虚拟循环队列 虚拟二叉树 虚拟二叉查找树 虚拟哈希表
4 1、装配的基本概念 装配:按规定的技术要求,将零部件进行配合和连接,使之成为半成品或成品的工艺过程称为装配。 "地"——装配既然表达产品零部件之间的配合关系,必然存在着参照与被参照的关系。在装配设计中有...
以枇杷为例,采用参数化单树建模工具ParaTree构建单株三维枇杷冠层模型,基于反距离加权插值法IDW建立地形表面模型;根据枇杷果园的树木分布情况,把单株木模型“种植”于地形表面,形成虚拟枇杷果园场景。整个三维...
本资源是一个基于SSM+Vue的树品种资源数据管理系统,该系统采用了Java代码和前端页面进行开发。源码包含了项目的基本框架、数据库表结构以及前端页面。部署说明详细指导了如何将项目部署到服务器上运行。 该树品种...
WITH TREE AS( --创建一个虚拟表 SELECT * FROM sys_organiz --指定需要查询的表 WHERE organize_code = '100000' -- 指定父节点条件 UNION ALL --联合查询 SELECT sys_organiz.* FROM sys_organiz,TREE WHERE ...
通过对大量实验数据 的分析,提取关键数据进行 处理并 完成决策树的构建,通过基 于一种数据拟合 的碰撞检测方法 ,真正实现了真实 手对 虚拟对象的抓取识别 。实验结 果表 明该算法识别率高 、 实时性好 、交互自然...
linux内核使用vm_struct结构体表示映射的地址空间,并且被组织在链表vmlist中,同时为了快速搜索VMA中一块连续的虚拟地址空间采用了红黑树进行管理,另外根据红黑树的层次结构将红黑树的各节点信息保存在vmap_area_...
虚拟DOM简而言之就是,用JS去按照DOM结构来实现的树形结构对象,也就是一个JS对象而已。那么什么样的对象才能比较匹配的上dom结构呢?来看一下如下图所示的dom结构 leftSpan rightSpan 图片旁边的span ...
使用它来构建数据网格,电子表格,数据透视表,文件树,或在任何需要的时间: 只是一个普通的<table> 。 虚拟渲染以实现高性能。 async数据模型处理慢速,远程,巨大和/或分布式后端。 易于样式设置,可与任何...