`
devexception
  • 浏览: 19166 次
社区版块
存档分类
最新评论

swt eclipse文件选择器

阅读更多
最近在写swt程序的时候,发现SWT Designer图形化工具的面板中找不到直接拖动的文件选择器。发现eclipse里面有很多的文件选择器,所以肯定是支持的,只是这个图形化工具不直接支持而已。查了下资料,发现其实很简单,就是在页面上添加一个按钮,然后为这个按钮实现选中事件,在事件中新建类就可以实现。不多说了,直接上代码。

package com.devexception;

import java.io.IOException;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.forms.events.HyperlinkAdapter;
import org.eclipse.ui.forms.events.HyperlinkEvent;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.Hyperlink;

public class FileChooser {

	protected Shell shell;
	private Text fileDirText;
	private Text fileNameText;
	private final FormToolkit formToolkit = new FormToolkit(Display.getDefault());

	/**
	 * Launch the application.
	 * @param args
	 */
	public static void main(String[] args) {
		try {
			FileChooser window = new FileChooser();
			window.open();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * Open the window.
	 */
	public void open() {
		Display display = Display.getDefault();
		createContents();
		shell.open();
		shell.layout();
		while (!shell.isDisposed()) {
			if (!display.readAndDispatch()) {
				display.sleep();
			}
		}
	}

	/**
	 * Create contents of the window.
	 */
	protected void createContents() {
		shell = new Shell();
		shell.setSize(450, 300);
		shell.setText("开发异常网");
		
		Button button = new Button(shell, SWT.NONE);
		button.addSelectionListener(new SelectionAdapter() {
			@Override
			public void widgetSelected(SelectionEvent e) {
				FileDialog fileDialog=new FileDialog(shell);
				fileDialog.setText("chooser");
				fileDialog.open();
				fileDirText.setText(fileDialog.getFilterPath());
				fileNameText.setText(fileDialog.getFileName());
			}
		});
		button.setBounds(213, 77, 72, 22);
		button.setText("浏览");
		
		Label lblNewLabel = new Label(shell, SWT.NONE);
		lblNewLabel.setBounds(139, 127, 54, 12);
		lblNewLabel.setText("文件路径");
		
		fileDirText = new Text(shell, SWT.BORDER);
		fileDirText.setBounds(213, 127, 70, 18);
		
		Label lblNewLabel_1 = new Label(shell, SWT.NONE);
		lblNewLabel_1.setBounds(139, 173, 54, 12);
		lblNewLabel_1.setText("文件名");
		
		fileNameText = new Text(shell, SWT.BORDER);
		fileNameText.setBounds(215, 168, 70, 18);
		
		Hyperlink hprlnkNewHyperlink = formToolkit.createHyperlink(shell, "更多详情", SWT.NONE);
		hprlnkNewHyperlink.setBounds(139, 81, 63, 14);
		formToolkit.paintBordersFor(hprlnkNewHyperlink);
		hprlnkNewHyperlink.addHyperlinkListener(new HyperlinkAdapter(){

			@Override
			public void linkActivated(HyperlinkEvent e) {
				try {
				     Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler http://www.devexception.com/j2se/554187.htm/");
				    } catch (IOException e1) {
				     e1.printStackTrace();
				    }

			}
			
		});
	}
}
1
3
分享到:
评论
2 楼 devexception 2014-09-05  
qindongliang1922 写道
swt现在还更新吗,用的怎么样

研究这个,也是受人之托,帮忙做一个工具软件。感觉页面效果还是不错的。至于有没有更新,这个还真不太清楚呢。
1 楼 qindongliang1922 2014-09-04  
swt现在还更新吗,用的怎么样

相关推荐

    Eclipse_Swt_Jface_核心应用_部分19

    1.4 Eclipse贡献SWT工具包 5 1.4.1 SWT的结构 6 1.4.2 SWT所支持的操作系统 6 1.5 Sun AWT/Swing与Eclipse SWT 7 1.5.1 Swing与SWT的比较 7 1.5.2 SWT的优势和不足 8 1.6 SWT与JFace、Eclipse 9 1.6.1...

    Eclipse权威开发指南2.pdf

    2.1.3 Eclipse的外观:编辑器、视图和透视图..... 16 2.1.4 用户界面概述..... 18 2.1.5 首选项介绍..... 19 2.2 基本的Eclipse使用...... 20 2.2.1 在Eclipse中工作..... 21 2.2.2 了解Eclipse用户界面..... 22 ...

    Eclipse+Web开发从入门到精通(实例版)

    1.5.3 文件选择器... 19 第 2 章 在 Eclipse 中进行重构... 22 2.1 重命名实例... 22 2.2 移动实例... 24 2.3 更改方法特征符实例... 25 2.4 将匿名类转换为嵌套类实例... 27 2.5 将成员类型移至新文件...

    Eclipse权威开发指南3.pdf

    2.1.3 Eclipse的外观:编辑器、视图和透视图..... 16 2.1.4 用户界面概述..... 18 2.1.5 首选项介绍..... 19 2.2 基本的Eclipse使用...... 20 2.2.1 在Eclipse中工作..... 21 2.2.2 了解Eclipse用户界面...

    Eclipse权威开发指南1.pdf

    2.1.3 Eclipse的外观:编辑器、视图和透视图..... 16 2.1.4 用户界面概述..... 18 2.1.5 首选项介绍..... 19 2.2 基本的Eclipse使用...... 20 2.2.1 在Eclipse中工作..... 21 2.2.2 了解Eclipse用户界面...

    Eclipse RCP Plugin 开发自学入门指南(CEC首发)

    6 编辑器 ................................................................................................................................................ 58 6.1 概述 .....................................

    Java项目开发与毕业设计指导

    然后SchoolEbay\database目录下的数据库文件附加到Sql Server,具体操作是打开企业管理器,在左边的树状列表中右击数据库,在弹出的快捷菜单中选择“所有任务”|“附加数据库”命令,再选择要附加的数据库文件即可。...

    Eclipse RCP Plug-in开发自学教程(Eclipse3.6)

    本教程素材来源于网络,经过本人的整理、添加以及部分的重写,将原有的Eclipse3.3版本的一些内容完全迁移到Eclipse3.6版本上来。基于开源以及分享的精神,特地将教程分享到网络上,希望所有需要的朋友因此而受益,也...

    windowbulider

    GOOGLE官网最新界面设计器,可用SWT SWING界面设计等,而且是兔费,这个是离线安装包,但是安装是仍然在连网,应该是在检测安装包完整性,安装时打开ECLIPSE---帮助--software updates--find and install---搜索要安装的新...

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

    原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制  Java二进制IO类与文件...

    EclipseLauncher-开源

    一个基于 Java 的跨平台 SWT/SWING 工作区选择器,用于 Eclipse 和基于 Eclipse 的产品,如 IBM 的 WSAD。

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

    原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制  Java二进制IO类与文件...

    java源码包2

    原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制  Java二进制IO类与文件...

    java源码包3

    原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制  Java二进制IO类与文件...

    java源码包4

    原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制  Java二进制IO类与文件...

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

    原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制  Java二进制IO类与文件...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制...

Global site tag (gtag.js) - Google Analytics