Eclipse开发经典教程之TreeViewer组件 - 编程入门网
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-06-17
eLabelProvider implements ILabelProvider {
private List listeners;
private Image file;
private Image dir;
boolean preserveCase;
public FileTreeLabelProvider() {
listeners = new ArrayList();
try {
//添加文件和目录的图标
file = new Image(null, new FileInputStream("icons/file.gif"));
dir = new Image(null, new FileInputStream("icons/directory.gif"));
} catch (FileNotFoundException e) {
}
}
public void setPreserveCase(boolean preserveCase) {
this.preserveCase = preserveCase;
//触发事件,重新得到显示标签
LabelProviderChangedEvent event = new LabelProviderChangedEvent(this);
for (int i = 0, n = listeners.size(); i < n; i++) {
ILabelProviderListener ilpl = (ILabelProviderListener) listeners
.get(i);
ilpl.labelProviderChanged(event);
}
}
public Image getImage(Object arg0) {
//返回目录或文件的图标
return ((File) arg0).isDirectory() ? dir : file;
}
public String getText(Object arg0) {
String text = ((File) arg0).getName();
if (text.length() == 0) {
text = ((File) arg0).getPath();
}
//返回目录或文件的文件名
return preserveCase ? text : text.toUpperCase();
}
public void addListener(ILabelProviderListener arg0) {
//添加******
listeners.add(arg0);
}
public void dispose() {
if (dir != null)
dir.dispose();
if (file != null)
file.dispose();
}
public boolean isLabelProperty(Object arg0, String arg1) {
return false;
}
public void removeListener(ILabelProviderListener arg0) {
//删除监听器
listeners.remove(arg0);
}
}
以上代码中,在主窗口上添加了TreeViewer组件,在树中显示当前磁盘和文件结构。另外 可以通过“Preserve case”复选按钮选择是为原有显示文本还是全部大写显示文本,程序运 行效果如图1所示。 图1 TreeViewer组件 TreeViewer的功能比较强大,在复杂的应用可以用它代替SWT的Tree组件,实现树的完美 展现。 上例中文件“icons/file.gif”和目录“icons/directory.gif”的图片没有加入,读者 可以加入相应的显示图片,图片的位置为相对于当前工程根目录的相对路径。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |