`
xuxiaolei
  • 浏览: 148802 次
  • 性别: Icon_minigender_1
  • 来自: 彩虹之巅
社区版块
存档分类

用SWT做的简单的文件浏览器

阅读更多

一个用swt做的简单的文件浏览器,

package hello;

import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.events.*;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.*;
import java.io.*;
import java.util.LinkedList;
import java.util.List;

public class TreeShellExample {
	
	Display d;
	Shell s;
	
	public TreeShellExample() {
		d = new Display();
		s = new Shell(d);
		
		s.setSize(250, 200);
		s.setImage(new Image(d, "c:/cart.png"));
		s.setText("A Tree Shell Example");
		s.setLayout(new FillLayout());
		
		final Tree t = new Tree(s, SWT.SINGLE | SWT.BORDER);
		File[] roots = File.listRoots();
		
		for(int i = 0; i < roots.length; i++) {
			TreeItem root = new TreeItem(t, SWT.NONE, i);
			String name = roots[i].getAbsolutePath();
			if(name.endsWith("\\")) {
				name = name.substring(0, name.length() - 1);
			}
			root.setText(name);
			root.setImage(new Image(d, "c:/image/folder.gif"));
			
			TreeItem child = new TreeItem(root, SWT.NONE, 0);
		}
		
		t.addTreeListener(new TreeListener() {
			public void treeExpanded(TreeEvent e) {
		           TreeItem ti = (TreeItem)e.item;
		           ti.setImage(new Image(d, "c:\\image\\open.gif"));
		           
		           TreeItem item = ti;
		           
		           List<String> list = new LinkedList<String>();
		           
		           while(item != null) {
		        	   list.add(0, item.getText());
		        	   item = item.getParentItem();
		           }
		           
		           String path = privateConvertToString(list);
		           
		           File[] children = new File(path).listFiles();
		           ti.removeAll();
		           
		           if(children != null) {
		        	   for(int i = 0; i < children.length; i++) {
		        		   TreeItem child = new TreeItem(ti, SWT.NONE, i);
		        		   child.setText(children[i].getName());
		        		   if(children[i].isDirectory()) {
		        			   child.setImage(new Image(d, "c:/image/folder.gif"));
		        			   new TreeItem(child, SWT.NONE, 0);
		        		   } else if(children[i].isFile()) {
		        			   child.setImage(new Image(d, "c:/image/file.gif"));
		        		   }
		        	   }
		           }
		           
		    }
		                
		    public void treeCollapsed(TreeEvent e) {
		          TreeItem ti = (TreeItem)e.item;
		          ti.setImage(new Image(d, "c:\\image\\folder.gif"));
		    }
		}); 
		
		s.open( );
        while(!s.isDisposed( )){
            if(!d.readAndDispatch( ))
                d.sleep( );
        }
        d.dispose( );
	}
	
	private String privateConvertToString(List<String> list) {
		StringBuffer buffer = new StringBuffer();
		if(list.size() == 1) {
			return buffer.append(list.get(0) + "/").toString();
		} else {
			for(int i = 0; i < list.size(); i++) {
				
				buffer.append(list.get(i));
				if(i != list.size() - 1) {
					buffer.append("/");
				}
			}
			
			return buffer.toString();
		}
	}
	
	public static void main(String[] args) {
		new TreeShellExample();
	}
}
 
  • 大小: 13.3 KB
1
2
分享到:
评论

相关推荐

    jExplorer——SWT做的一个文件浏览器

    8. 重写FileUtil中doPaste()方法,显著提高速度,修正拷贝文件时会导致文件不正常的严重Bug 9. 修正其他部分已发现Bug 10. 版本号升级为0.5 尚未实现的功能: 1. 与外界程序的交互 2. 拖拽 3. 国际化 4. 输入文件名...

    最全的SWT示例(绝对最全),上次文件损坏了,重传个

    这是我找到的最全的SWT示例,即使在官方网站上也非常难找,示例包括以下内容:SWT模式窗体,SWT浏览器,SWT树,SWT工具条,SWT画图工具,SWT图形,SWT各种布局,SWT剪贴板,SWT快捷键,SWT菜单,SWT文本编辑器,SWT...

    java源码屏幕刷新-javacef:在JavaSWT中嵌入Chromium浏览器。(以前是code.google.com/p/javacef

    操作、标签设置、打印、后退、前进、刷新按钮和增强的文件下载。 该项目基于(CEF)。 背景:javacef 为什么要开源? 我在 2012 年夏天找到了一份工作来制作一个界面,以便在 Java 中使用带有 SWT 的 Chromium ...

    文件浏览器源码

    这个是基于swt实现的一个本地文件浏览器的源码,技术框架是RCP,想学习的欢迎免费下载,希望能对你们有所帮助

    java数字签名,md5大小文件验证,DES加密解密RSA加密解密,SWT浏览器插件的等源码工程实例

    java数字签名,大小文件MD5验证,DES加密解密RSA加密解密,SWT浏览器插件的等源代码下载。

    java内嵌浏览器(代码文件),相关的依赖及jar包

    DJNativeSwing.jar,DJNativeSwing-SWT.jar,swt(Mac用.jar,swt(Window.jar 可解决问题:1.报错信息为缺少swt-cocoa-4335.dll和swt-cocoa.dll文件

    Java浏览器

    java swt制作的一个浏览器,下载解压后,点击exe或bat文件可以直接运行

    SWT演示 Examples源码项目

    官网上的 swt examples http://www.eclipse.org/swt/examples.php 已整理好,里面包含许多常用例子,如文本编辑器,文件浏览器,绘图器,组件控制器的源码等等 项目有任何问题可联系本人

    用swt/jface实现的资源浏览器jExplorer

    动态识别文件类型 5. 详尽的注释 &lt;br&gt;已知的Bug: 1. TreeViewer进行目录切换时,TableViewer窗体有时会变成空白 2. 有特殊字符的过滤操作将导致异常 3. 重命名没有考虑特殊字符 4. 有大量文件...

    eclipse swt包

    eclipseSwt swt-3.5M4-win32-win32-x86.zip 包含browser包内容,可以做java浏览器内嵌等功能包

    chromium.swt:SWT的Chromium小部件

    设计Chromium SWT浏览器作为P2存储库提供,可以立即使用,其中包含: Chrome束每个平台片段的本地Chrome库包含以上所有内容的功能CEF二进制文件在单独的存储库中提供,以方便使用。P2资料库Eclipse P2存储库随Li

    Eclipse_Swt_Jface_核心应用_部分19

    9.9.9 用键盘控制表格(TableCursor) 189 9.9.10 带有进度条的表格 191 9.9.11 表格小结 192 9.10 树(Tree) 192 9.10.1 不同样式的树 193 9.10.2 为树添加图标 193 9.10.3 可编辑的树 196 9.10.4 ...

    Dreamweaver 8和Flash 8案例教程-电子教案

    第1章 Dreamweaver 8概述 第2章 网页中的文字、图像和导航条 第3章 框架、表格、层与网页布局 第4章 表单、样式表与网页中的其他对象 第5章 时间轴和行为 第6章 模板、命令、“资源”面板和外部插件 ...

    JAVA上百实例源码以及开源项目

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    sophie:Solr浏览器和管理工具

    列出在Solr上配置的所有字段并检查其属性核心浏览器:列出Solr实例上托管的所有核心并检查其属性核心操作:创建,删除,重命名,交换,重新加载核心系统浏览器:查看所有系统属性配置文件浏览器:列出所有Solr配置...

    PhonixJ:使用 SWT 用 Ja​​va 编写的跨平台电话簿。-开源

    PhonixJ 是一个用 Java 编写的简单、轻便且功能丰富的桌面电话簿应用程序。 它使用 Sqlite 数据库文件,因此非常便携。 该程序可在 Linux、Windows 和(即将推出的)MacOS 上运行。 特点: - 添加/删除联系人 - 创建...

    java源码包---java 源码 大量 实例

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    JAVA上百实例源码以及开源项目源代码

    Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...

    java源码包2

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

Global site tag (gtag.js) - Google Analytics