通过treecolumn的方式实现表格树,实现过很多次,但是每次都得自己写一遍,今天记录下来,以后捡现成的。
final TreeViewer viewer = new TreeViewer(shell, SWT.FULL_SELECTION);
viewer.getTree().setHeaderVisible(true);
TreeColumn column = new TreeColumn(viewer.getTree(), SWT.LEFT);
column.setText("Name");
column.setWidth(200);
column = new TreeColumn(viewer.getTree(), SWT.LEFT);
column.setText("Size");
column.setWidth(100);
column = new TreeColumn(viewer.getTree(), SWT.LEFT);
column.setText("Hidden");
column.setWidth(100);
viewer.setContentProvider(new MyTreeContenetProvider());
viewer.setLabelProvider(new MyTableLableProvider());
viewer.setInput(new File("/"));
class MyTreeContenetProvider implements ITreeContentProvider{
public Object[] getChildren(Object parentElement) {
File file=(File)parentElement;
if(file.isDirectory())
return file.listFiles();
else
return null;
}
public Object getParent(Object element) {
File file=(File)element;
return file.getParentFile();
}
public boolean hasChildren(Object element) {
File file=(File)element;
return file.isDirectory()/*&&file.list().length>0*/;
}
public Object[] getElements(Object inputElement) {
File file=(File)inputElement;
return file.isDirectory()?file.listFiles():new Object[]{file};
}
public void dispose() {
}
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
}
}
class MyTableLableProvider implements ITableLabelProvider{
public Image getColumnImage(Object element, int columnIndex) {
return null;
}
public String getColumnText(Object element, int columnIndex) {
File file=(File)element;
switch (columnIndex) {
case 0:
return file.getName();
case 1:
return ""+file.length();
case 2:
return ""+file.isHidden();
default:
return "";
}
}
public void addListener(ILabelProviderListener listener) {
}
public void dispose() {
}
public boolean isLabelProperty(Object element, String property) {
return false;
}
public void removeListener(ILabelProviderListener listener) {
}
}
分享到:
相关推荐
extjs 可编辑的表格树,每个单元格自定义编辑组件,可以自适应列宽,只有源码与例子,运行实例要修改路径,不然图片不能显示,注意etree.jsp的js引入路径 支持Ext2.x以上版本 如运行不了EmailTo : codeme9@gmail....
在Windows XP上,TableTree组件在展开或收缩节点时,列宽会保持不变,但在OS X中,当树节点被展开时,包含树的列会自动扩展,导致后续的列部分隐藏在Sash(分割条)下面。这个问题出现的原因可能与不同操作系统下...
在EXTJS中,动态树的实现主要依赖于`Ext.tree.Panel`类和`Ext.data.TreeStore`类。`TreeStore`负责管理树的数据源,而`TreePanel`则用于展示这些数据。以下是一个简单的EXTJS动态树实现的步骤: 1. **定义数据模型...
ExtJS的Tree组件是Sencha ExtJS框架中的一个重要部分,用于构建可交互的树形结构数据展示。在ExtJS中,TreePanel是用来显示和操作树形数据的主要组件,它可以用于组织层次化的信息,如文件系统、组织架构或者分类...
树面板与数据存储之间的交互通过节点接口(The Node Interface)实现。这个接口封装了模型实例,提供了额外的方法和属性来适应树控件的特殊状态。例如,你可以改变树的外观,通过设置`useArrows`为`true`来隐藏边线...
总结,TreeGrid是jQuery库中的一个强大工具,它通过树形结构展示表格数据,使得信息层次更清晰。理解并掌握JSON数据格式、配置选项以及基本的实现方法,是有效利用TreeGrid的关键。在实际项目中,可以根据需要对...
Tree组件是ExtJS中的一个核心组件,它能够以可交互的树形结构展示数据。每个节点都可以包含子节点,并且可以通过展开和折叠操作来控制显示的层次。Tree组件不仅支持静态数据,也支持动态加载数据,即按需加载节点。 ...
在实际应用中,你可以通过递归或者循环来动态加载大量数据,或者自定义TreeColumn来展示多列数据。SWT还提供了许多高级特性,如Tree的拖放操作、图像支持、检查框等等,可以根据需求进行深入学习和使用。
TreeGrid是ExtJS提供的一种复合组件,它结合了树形视图和数据网格的功能,允许用户同时展示层次结构数据和表格数据。在"Extjs4的TreeGrid例子"这个主题中,我们将深入探讨TreeGrid的各种特性,以及如何在实际项目中...
通过`TableColumn`和`TreeColumn`可以定义列的显示属性,而`TableItem`和`TreeItem`则用于添加和管理具体的数据项。 **3. 图形与图像** SWT的`GC`(Graphics Context)类允许开发者进行复杂的图形绘制,包括直线、...
7.5.11 树节点:ext.data.nodeinterface与ext.data.tree / 364 7.5.12 store的方法 / 366 7.5.13 store的事件 / 368 7.5.14 store管理器:ext.data.storemanager / 369 7.6 综合实例 / 369 7.6.1 远程读取json...
EXT是Sencha公司开发的一款强大的JavaScript前端框架,用于构建富客户端Web应用。它提供了一整套组件化的UI元素,使得开发者能够轻松...实际应用中,开发者可以根据需求灵活配置和扩展,以实现更复杂的树形视图功能。
JavaScript中的事件处理是Web开发中的核心概念,它允许开发者响应用户的交互。...这两种模型都是为了解决早期Netscape事件处理方式的问题,即无法绑定多个事件处理函数。 **W3C模型** W3C DOM层面的事件规范提出了`...
org.eclipse.swt.custom.TableTree.class org.eclipse.swt.custom.TableTreeEditor.class org.eclipse.swt.custom.TableTreeItem.class org.eclipse.swt.custom.TextChangeListener.class org.eclipse.swt.custom....
Including treeColumn, a default column that can be added and modified like any other column. Support for Unicode string (WideString) in cell, header, and footer Supports both Delphi (VCL) Visual ...