读书人

SWT/Jface TreeViewer事例-实现文件浏

发布时间: 2012-09-07 10:38:15 作者: rapoo

SWT/Jface TreeViewer例子-实现文件浏览器

就是实现一个简单的文件浏览功能

废话少说,大家看一下代码:

tree的定义:

final TreeViewer treeViewer = new TreeViewer(shell, SWT.BORDER
| SWT.V_SCROLL | SWT.H_SCROLL);
tree = treeViewer.getTree();
tree.setLayoutData(GridDataUtil.fillData());

treeViewer.setContentProvider(new ViewContentProvider());
treeViewer.setLabelProvider(new ViewLabelProvider());
treeViewer.setAutoExpandLevel(2);
treeViewer.setInput(File.listRoots()); //这个自己获取一下自己的file集合

content:

class ViewContentProvider implements ITreeContentProvider {
public void inputChanged(Viewer v, Object oldInput, Object newInput) {
}

@Override
public void dispose() {
}

@Override
public Object[] getElements(Object inputElement) {
return (File[]) inputElement;
}

@Override
public Object[] getChildren(Object parentElement) {
File file = (File) parentElement;
return file.listFiles();
}

@Override
public Object getParent(Object element) {
return ((File) element).getParentFile();
}

@Override
public boolean hasChildren(Object element) {
File file = (File) element;
if (file.isDirectory()) {
return true;
}
return false;
}

}

label:

class ViewLabelProvider extends LabelProvider {
@Override
public String getText(Object element) {
File file = (File) element;
String name = file.getName();
if (name.length() > 0) {
return name;
}
return file.getPath();
}

public Image getImage(Object obj) {
Bundle bundle = FrameworkUtil.getBundle(this.getClass());
URL url = FileLocator.find(bundle, new Path("icons/alt_window_32.gif"), null);
ImageDescriptor image = ImageDescriptor.createFromURL(url);
return image.createImage();
}
}

@Override
public boolean setFocus() {
viewer.getControl().setFocus();
return true;
}

}

好吧 我承认

就是这样子

跑一下试试!

读书人网 >编程

热点推荐