提要
虚拟表和树允许开发人员快速创建具有大量数据的表(Table)和树(Tree),并且能够有效地进行填充。本文概述了如何在SWT应用程序中使用虚拟表和树。
作者:Beatriz Iaderoza 和 Grant Gayed, IBM渥太华实验室 2006年6月5月
表和树概述
在SWT应用程序中创建表或树时,每一项(行)由TableItem或TreeItem表示。如果它们的数量非常庞大或它们需要进行大量的计算,那么创建这些项将花费大量时间。这会给传统的表或树带来一个问题,因为它们的项需要预先创建好,从而导致初始化过程非常慢。此外,如果用户并不查看所有的项——对于大的表和树通常是这样,那么初始代价中的大部分都被浪费了。
虚拟表和树非常适合处理这类情况。在虚拟表和树中,只有在需要时才创建项。这确保了不会花费时间和内存处理那些从未被查看过的项,而且表或树的填充散布在控件的整个生命周期内,而不是全部预先填充。
使用虚拟表的一个场景可能是显示图书馆数据库的查询结果。使用非虚拟表时,初始填充时间可能会非常慢,因为可能返回一个巨大的数据集,并且数据库要花费大量时间获取项目的摘要信息。然而,在这种情况下,虚拟表有出色表现,因为初始填充时间只是获取第一页项目的时间。在一个具有良好启发式排队(ranking heuristics)的结果集的系统中,用户基本上只查看这些项目。
下面几节描述了如何使用虚拟表和树,并且提供了示例代码和说明。应当注意的是,虚拟表一节包含的概念同样适用于虚拟树。
虚拟表
为了填充一个虚拟表,你必须指定它包含项目的数量,并且在SWT.SetData上注册监听器。项目数量用于设置表的垂直流动条的最大值,这个值可以在它的生命周期内变化。
当请求一个未初始化的项目时,通常是因为该项目第一次对用户可见,会自动创建一个项目并传递给SWT.SetData的监听器对它的数据进行设置。项目数据由项目的所有属性组成(文本、图片、颜色、勾选状态)。系统可以自由地以任意顺序请求任意项目。项目一旦被初始化——或者通过SWT.SetData监听器,或者通过TableItem API,例如setText(),那么它的值就持久保存,SWT.SetData listener不再被调用设置它的值。唯一例外的情况是,如果使用表格的clear() API清空一个项目时,监听器会在必要时被调用设置它的数据。
让我们看一个简单的例子,其中涉及到创建和使用虚拟表的基本概念。清单1展示了创建具有10000个项目的表,并对已设置数据的项目进行修改:
int COUNT = 100000;
final String[] itemStrings = new String[COUNT];
for (int i = 0; i < COUNT; i++) {
itemStrings[i] = "item " + i;
}
final Table table = new Table(shell, SWT.BORDER | SWT.VIRTUAL);
table.setBounds(11, 11, 458, 244);
table.addListener(SWT.SetData, new Listener() {
public void handleEvent(Event event) {
TableItem item = (TableItem) event.item;
int index = event.index;
item.setText(itemStrings[index]);
}
&n
相关推荐
经典脉冲激光测距原理&雷达方程
脉冲激光测距机的工作过程如下:首先用瞄准光学系统瞄准目标,然后接通激光电源,储能电容器充电,产生触发闪光灯的触发脉冲,闪光灯点亮,激光器受激辐射,从输出反射镜发射出一个前沿陡峭、峰值功率高的激光脉冲,通过发射光学系统压缩光束发射角后射向目标。通过计算激光发射功率经介质传输的衰减,目标表面截获和反射的光功率,到达接收视场的光功率,以及接收光学系统接收到的光功率,就可以得到到达光电探测器的光功率,即接收功率。⑤光東路程上的折射率变化;),测量光脉冲到达目标并由目标返回到接收机的时间,由此计算出目标的距离。
论文笔记--Spatial-Temporal Fusion Graph Neural Networks for Traffic Flow Forecasting
Summary 在交通预测问题上,现有的框架通常利用给定的空间邻接图和复杂的机制来建模空间和时间关联。作者认为使用给定的空间邻接图会限制模型的有效时空相关性学习,并且它们通常使用单独的模块来实现空间和时间相关性,或者只使用独立的组件来捕获局部或全局的异质依赖关系,割裂了时空依赖关系。为此作者提出一种时空融合图神经网络用于交通预测。提出一种数据驱动的“时间图”生成方法,以此来补偿空间图可能没有反映的相关性。提出一种新的交通预测方法。 Problem Definition 交通预测中的挑战 以上图为
【深度学习面试八股文】-- 1-5
1.样本不平衡的处理方法 ①欠采样 - 随机删除观测数量足够多的类,使得两个类别间的相对比例是显著的。虽然这种方法使用起来非常简单,但很有可能被我们删除了的数据包含着预测类的重要信息。 ②过采样 - 对于不平衡的类别,我们使用拷贝现有样本的方法随机增加观测数量。理想情况下这种方法给了我们足够的样本数,但过采样可能导致过拟合训练数据。 ③合成采样( SMOTE )-该技术要求我们用合成方法得到不平衡类别的观测,该技术与现有的使用最近邻分类方法很类似。问题在于当一个类别的观测数量极度稀少时该怎...
ros1 ubuntu22.04 安装教程
ROS1 ubuntu22.04 安装教程
《YOLO11改进有效涨点》 专栏目录 | 目前已有100+篇内容,内含各种Head检测头、损失函数Loss、Backbone、Neck等创新点改进【持续更新】
YOLO11改进专栏目录,YOLO11改进目录
复现Fastjson反序列化漏洞(从dnslog回显到rce再到反弹shell)
Fastjson是阿里巴巴的开源JSON解析库,它可以解析 JSON 格式的字符串,支持将 Java Bean 序列化为 JSON 字符串,也可以从 JSON 字符串反序列化到 JavaBean。它还可以用于将JSON字符串转换为等效的Java对象,fastjson爆出多个反序列化远程命令执行漏洞,攻击者可以通过此漏洞远程执行恶意代码来入侵服务器。......
最新Python爬虫实战(入门爬虫篇)——案例20:某股票数据采集(详细爬虫思路截图+抓包动图演示+完整爬虫代码+详细注释)
本次案例针对某股票行情网的静态HTML页面,实现了全市场股票数据的全自动化爬取,覆盖了从抓包分析、请求模拟、数据解析到数据存储的完整爬虫流程,非常适合入门学习者巩固基础,核心知识点和实现要点总结如下:首先是页面分析的核心逻辑,静态HTML页面的数据爬取,核心在于通过浏览器开发者工具,完成完整的抓包分析和标签结构定位。我们不需要像动态页面那样找隐藏的API接口,只需要确认数据在主文档的HTML源码中,然后通过元素选择器,精准找到每个字段对应的标签,总结出统一的标签结构规律,就能实现批量数据提取。
【OpenClaw企业级智能体实战】第09篇:OpenClaw金融投研实战:17个场景+完整代码,打造专属数字研究员
金融投研面临信息过载、流程重复、数据安全合规三大核心痛点,OpenClaw作为本地部署的新一代AI智能体,凭借“长期记忆+主动执行+数据不出域”的优势,成为券商分析师集体追捧的效率工具。本文基于8家头部券商公开研报,拆解OpenClaw在金融投研的17个核心应用场景(信息处理、研报撰写、量化策略、流程自动化),详解原理、技术选型、实操流程,并提供可直接运行的完整代码与执行结果。文章兼顾新手入门与进阶提升,强调安全隔离部署与幻觉防范,读者可按步骤搭建专属投研智能体,将信息处理、数据整理等重复工作效率提升80%
大中型超市收银系统(可直接运行)
光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开
计算机控制技术及应用
《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。
C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片
基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正
假人有限元模型
假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用
2524



被折叠的 条评论
为什么被折叠?



