最近在写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.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...
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 ...
1.5.3 文件选择器... 19 第 2 章 在 Eclipse 中进行重构... 22 2.1 重命名实例... 22 2.2 移动实例... 24 2.3 更改方法特征符实例... 25 2.4 将匿名类转换为嵌套类实例... 27 2.5 将成员类型移至新文件...
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用户界面...
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用户界面...
6 编辑器 ................................................................................................................................................ 58 6.1 概述 .....................................
然后SchoolEbay\database目录下的数据库文件附加到Sql Server,具体操作是打开企业管理器,在左边的树状列表中右击数据库,在弹出的快捷菜单中选择“所有任务”|“附加数据库”命令,再选择要附加的数据库文件即可。...
本教程素材来源于网络,经过本人的整理、添加以及部分的重写,将原有的Eclipse3.3版本的一些内容完全迁移到Eclipse3.6版本上来。基于开源以及分享的精神,特地将教程分享到网络上,希望所有需要的朋友因此而受益,也...
GOOGLE官网最新界面设计器,可用SWT SWING界面设计等,而且是兔费,这个是离线安装包,但是安装是仍然在连网,应该是在检测安装包完整性,安装时打开ECLIPSE---帮助--software updates--find and install---搜索要安装的新...
原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件...
一个基于 Java 的跨平台 SWT/SWING 工作区选择器,用于 Eclipse 和基于 Eclipse 的产品,如 IBM 的 WSAD。
原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件...
原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件...
原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件...
原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件...
原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件...
原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制...
原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制...