原文来自:Snippet8
SWT中的树可以利用SWT.Expand事件实现懒加载。
public class Snippet8 {
public static void main (String [] args) {
final Display display = new Display ();
final Shell shell = new Shell (display);
shell.setText ("Lazy Tree");
shell.setLayout (new FillLayout ());
final Tree tree = new Tree (shell, SWT.BORDER);
File [] roots = File.listRoots ();
for (int i=0; i<roots.length; i++) {
TreeItem root = new TreeItem (tree, 0);
root.setText(roots[i].toString());
root.setData(roots[i]);
// display '+' default.
new TreeItem(root, 0);
}
tree.addListener(SWT.Expand, new Listener () {
public void handleEvent (final Event event) {
final TreeItem root = (TreeItem) event.item;
TreeItem[] items = root.getItems ();
for(int i= 0; i<items.length; i++) {
// if have added children for the item, just return.
if(items[i].getData() != null)
return;
items[i].dispose();
}
File file = (File) root.getData();
File[] files = file.listFiles();
// disc return
if(files == null) return;
for(int i= 0; i<files.length; i++) {
TreeItem item = new TreeItem(root, 0);
item.setText(files[i].getName());
item.setData(files[i]);
if(files[i].isDirectory()) {
// display '+' only for directory.
new TreeItem(item, 0);
}
}
}
});
Point size = tree.computeSize(300, SWT.DEFAULT);
int width = Math.max(300, size.x);
int height = Math.max(300, size.y);
shell.setSize (shell.computeSize (width, height));
shell.open ();
while (!shell.isDisposed ()) {
if (!display.readAndDispatch ()) display.sleep ();
}
display.dispose ();
}
}
保证根节点的+图像 写道
// display '+' default.
new TreeItem(root, 0);
不重复加载 写道
// if have added children for the item, just return.
if(items[i].getData() != null)
return;
- 大小: 4.5 KB
分享到:
相关推荐
SWT,java SWT事件一览表 RCP插件开发
JAVA.SWT/JFace: 按键与其对应的常量表、KeyEvent事件比较、VerifyEvent事件比较
完整的用SWT树例子源码,有注释,实现联动。结构清晰,适合新手使用。
SWT配置 SWT配置 SWT配置 SWT配置 SWT配置 SWT配置 SWT配置 SWT配置
64位windows操作系统使用的SWT库
swt工具文档 swt工具文档 swt工具文档 swt工具文档 swt工具文档 swt工具文档
这是我找到的最全的SWT示例,即使在官方网站上也非常难找,示例包括以下内容:SWT模式窗体,SWT浏览器,SWT树,SWT工具条,SWT画图工具,SWT图形,SWT各种布局,SWT剪贴板,SWT快捷键,SWT菜单,SWT文本编辑器,SWT...
Java SWT用户注册源代码,带事件处理.
SWT examples,SWT官方例子:http://www.eclipse.org/swt/examples.php 该页面所要下载的例子 其中,swt的例子在\plugins\org.eclipse.swt.examples.source_3.7.0.v3740f.jar中
SWT插件中文教程SWT常用方法SWT插件中文教程SWT常用方法SWT插件中文教程SWT常用方法SWT插件中文教程SWT常用方法SWT插件中文教程SWT常用方法SWT插件中文教程SWT常用方法
SWT的MessageBox对话框 SWT有不同类型的对话框。有些对话框具有特殊的属性。 MessageBox messageBox = new MessageBox(shell, SWT.OK|SWT.CANCEL); if (messageBox.open() == SWT.OK) { System.out.println(...
1.利用鼠标监听器监听鼠标双击事件。当在文本框中双击鼠标时,显示“文本框中鼠标双击事件发生!”。 2.利用键盘监听器监听键盘事件。当在文本框text1中输入信息,按回车键时将text1中的信息显示在text2中。 3.利用...
swt 基础教程 swt 基础教程 swt 基础教程swt 基础教程swt 基础教程
swt教程 有关SWT怎么应用
下载编译的SWT库,版本号4.911,包含多个版本: org.eclipse.swt.cocoa.macosx.x86_64 org.eclipse.swt.gtk.linux.aarch64 org.eclipse.swt.gtk.linux.arm org.eclipse.swt.gtk.linux.ppc64le org.eclipse.swt.gtk....
SWT的一个实例 TreeViewer的小程序范例
SWT官方api文档 开发基于swt的GUI程序必备手册
swt.jar swt.jar swt.jar swt.jar swt.jar
org.eclipse.swt.SWT.class org.eclipse.swt.SWTError.class org.eclipse.swt.SWTException.class org.eclipse.swt.accessibility.ACC.class org.eclipse.swt.accessibility.Accessible.class org.eclipse.swt....
swt通过树状点击可以跳转到指定的网页,比如一般的与客服联系,点击一下自动与设定qq发起聊天