就是实现一个简单的文件浏览功能
废话少说,大家看一下代码:
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;
}
}
好吧 我承认
就是这样子
跑一下试试!