`
xuxiaolei
  • 浏览: 150203 次
  • 性别: 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
分享到:
评论

相关推荐

    JAVA SWT 多标签浏览器

    在"JAVA SWT 多标签浏览器"项目中,源码部分(用eclipse直接载入)是关键,它包含了一系列的Java类和方法,用于实现浏览器的基本功能,如加载URL、前进、后退、刷新、书签管理等。开发者可能使用了`org.eclipse.swt....

    基于SWT组件的IE内核Java简易浏览器

    **基于SWT组件的IE内核Java简易浏览器** 在Java编程世界中,开发一款简易的浏览器是一项有趣的挑战,尤其当涉及到用户界面(UI)的设计时。SWT(Standard Widget Toolkit)是Eclipse基金会提供的一种GUI库,它允许...

    SWT开发的浏览器(Java)--源代码

    本项目以SWT为工具,开发了一个简单的Java浏览器,实现了浏览网页的基本功能。通过分析这个源代码,我们可以深入理解SWT如何被用来构建具有实际应用价值的程序。 首先,我们要了解SWT的优势。与Java标准库中的AWT和...

    SWT java浏览器

    这个“SWT java浏览器”是一个使用SWT库开发的浏览器组件,它允许开发者在Java应用程序中集成浏览网页的功能。下面我们将深入探讨SWT库以及如何利用它构建具有完整功能的浏览器。 1. SWT库简介: SWT是一个针对Java...

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

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

    java swt javaFx 整合 自带浏览器 实现 调用网页echart

    SWT提供了一个`Browser`类,允许开发者在Java程序中内嵌一个Web浏览器组件。 **JavaFX** 是Oracle公司推出的新一代富客户端应用开发框架,它提供了丰富的UI控件、2D/3D图形渲染、动画和媒体处理等功能。JavaFX的`...

    SWT或Applet打开Office文件

    3. **文件内容处理**:服务器接收到请求后,读取并处理文件内容,可以是简单的预览,也可以是复杂的编辑操作。 4. **数据回传**:服务器将处理后的文件内容以HTML、图片或其他形式返回给客户端,SWT应用可以直接...

    Java内嵌浏览器eclipse.swt插件版

    在这个场景下,"Java内嵌浏览器eclipse.swt插件版"指的是使用SWT来实现Java应用程序中的内嵌浏览器功能。 SWT是Eclipse项目的一部分,设计用于替代Java Swing,提供更丰富的图形用户界面和更好的性能。它利用了操作...

    DJNativeSwing-SWT组件-Java GUI中内嵌浏览器相关JAR包

    "djnativeswing-sw.jar"文件则是DJNativeSwing-SWT的实现,它实现了在SWT环境下内嵌浏览器的功能。"org.eclipse.swt."标签表明这些JAR包依赖于Eclipse SWT库,这是实现原生浏览器控件的关键。 在使用这些JAR包时,...

    java内嵌浏览器DJNativeSwing的jar包 以及32位和64位的SWT

    DJNativeSwing-SWT是DJNativeSwing的一个扩展,它将DJNativeSwing与SWT集成,使得在使用SWT作为GUI构建工具的Java应用中也能方便地嵌入浏览器。SWT(Standard Widget Toolkit)是Eclipse基金会提供的一套用于创建...

    Java-Swing嵌入浏览器(本地浏览器和webkit浏览器-火狐内核)

    这个压缩包文件“Java-Swing嵌入浏览器(本地浏览器和webkit浏览器-火狐内核)”显然提供了一个实现这一功能的示例,主要涉及到的技术是DJnative-SWT和SWT。 DJnative-SWT 是一个开源项目,它的目标是将Java和...

    SWT.rar_SWT_文件管理

    通过组合这些组件,开发者可以创建出直观的文件浏览器界面。 2. **事件驱动编程**:SWT基于事件驱动模型,用户操作如点击、拖放等都会触发相应的事件。开发者需要注册事件监听器,处理这些事件来实现应用程序的功能...

    SWT/JFACE实现的带浏览器的记事本

    本项目是使用 SWT 和 JFace 实现的一个功能丰富的记事本程序,集成了内置浏览器功能,提供了多种操作选项,如保存、另存、打开、复制、粘贴、剪切、撤销、修改字体以及打印等。现在我们将详细讨论这些知识点。 1. ...

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

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

    文件浏览器源码

    源码会详细展示了如何使用SWT和RCP来实现文件浏览器的各种功能,包括但不限于以下部分: - **Plugin.xml**:定义插件元数据,包括插件ID、依赖、激活类等。 - **Java源代码**:实现文件浏览器的核心逻辑,如视图、...

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

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

    swt源码和jar包dj-native-swing-swt.jar

    在标签中,"java图形化"指的是使用Java进行GUI编程,"java开发浏览器"可能是指使用SWT可以创建出类似于浏览器的界面,比如Web浏览器控件,允许在Java应用中显示网页。"dj-native-swing"是前面提到的结合Swing和SWT的...

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

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

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

    `WebBrowsers.java`可能实现了使用SWT创建浏览器组件的功能,允许在Java应用程序内嵌入Web浏览器,可能涉及到`org.eclipse.swt.browser.Browser`类的使用。 6. **协议处理和密钥管理**:`ProtocalCipher.java`和`...

    eclipse swt包

    标题中的“eclipse swt包”指的是Eclipse项目中的SWT库,通常以JAR文件的形式提供,用于开发人员在Eclipse环境下构建具有原生外观的Java应用程序。描述中提到的"swt-3.5M4-win32-win32-x86.zip"是一个特定版本的SWT...

Global site tag (gtag.js) - Google Analytics