最近在写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. 解压缩下载的"swt设计器for_Eclipse4.5"文件。 2. 找到Eclipse的安装目录,进入"plugins"或"features"目录,这取决于插件的类型。 3. 将解压缩后的文件夹复制到相应的目录下。 4. 启动Eclipse,如果Eclipse识别到...
- **ColorDialog、FontDialog等对话框组件**:用于创建颜色选择器、字体选择器等对话框。 - **FileDialog控件**:用于打开文件选择对话框。 - **PrintDialog控件**:用于打开打印设置对话框。 - **CCombo组件**:一...
3. **对话框和警告**:JFace提供了标准的对话框组件,如消息对话框、输入对话框、颜色选择器等,使开发者能够快速实现用户交互。 4. **模型-视图-控制器(MVC)**:JFace遵循MVC设计模式,将用户界面与业务逻辑分离...
### Eclipse SWT开发点滴 #### 一、第三方包的引用 在使用Eclipse进行SWT开发时,经常会遇到需要引入第三方库的情况。以下是引入第三方库的具体步骤: 1. **工程项目增加Libraries** - 右键点击项目 -> `Build ...
### Eclipse 下使用 SWT 的知识点详解 #### 一、概述 Eclipse 是一款广泛使用的开源集成开发环境(IDE),尤其在 Java 开发领域占有重要地位。随着 Eclipse Visual Editor Project (VEP) 的出现,Eclipse 不仅能...
4. **对话框**(Dialogs):SWT提供了多种对话框,如消息对话框(MessageDialog)、输入对话框(InputDialog)和文件选择对话框(FileDialog),用于进行用户交互。 5. **拖放功能**(Drag and Drop):SWT支持在...
压缩包子文件的文件名称"eclipse3.7的swt安装.txt"暗示了这可能是一个安装指南或者步骤说明,里面包含了如何在Eclipse 3.7中正确安装和配置SWT Designer的详细信息。通常,这样的文本文件会包含如下内容: 1. 下载...
3. 在“Work with”下拉框中选择“Add”,输入插件更新站点的URL或导入已下载的插件文件。 4. 遵循向导完成插件安装,重启Eclipse后即可使用。 features和plugins目录通常包含Eclipse插件的元数据和实际插件组件。...
对于需要访问系统资源的开发者,SWT提供了诸如文件对话框、系统剪贴板、定时器和线程服务等实用工具。 SWT的一个重要特性是其可扩展性,它支持自定义控件的创建。开发者可以通过继承现有的SWT类并覆盖方法来实现...
3. **导入SWT库**:将下载的SWT库解压后,将jar文件添加到Eclipse项目的类路径中。可以通过右键点击项目 -> Build Path -> Configure Build Path -> Libraries -> Add Jars 或 Add External Jars 来完成。 4. **...
1. **创建 SWT 项目**:在Eclipse中,选择“File” -> “New” -> “Project”,然后在“Java”类别下找到“SWT Project”。输入项目名称,选择合适的JRE版本,点击“Finish”完成项目创建。 2. **编写 SWT 主类**...
4. **选择合适的插件**: 搜索结果会显示多个相关的插件,例如SWT Designer或Eclipse RCP。SWT Designer是一个可视化编辑器,可以帮助设计SWT和JFace的用户界面。根据你的需求选择合适的插件,点击“安装”(Install...
一旦插件安装成功,开发者可以在Eclipse的Package Explorer或Project Explorer中右键点击SWT相关的源代码文件,选择“Open With” > 插件提供的编辑器,然后就可以开始使用图形化界面设计SWT UI了。 总的来说,...
【标签】中的"swt jar包"指的是包含SWT库的Java归档文件,这些jar包通常包括了SWT的各种组件和功能,如控件、布局管理器、事件处理机制等。开发人员需要根据目标操作系统的版本和架构选择相应的SWT jar包,因为每个...
Eclipse SWT (Standard Widget Toolkit) 和 JFace 是两个在Java编程环境中用于构建图形用户界面(GUI)的重要库,尤其在开发Eclipse插件和RCP(Rich Client Platform)应用程序时非常常见。它们提供了丰富的控件、...
这些库文件是根据目标平台(如Windows、Linux、Mac OS等)选择的,确保在运行SWT程序时使用正确的版本。例如,如果你是在Windows环境下开发,需要使用`swt_win32.jar`,而在Linux环境下则需要`swt_gtk.jar`。 总的...
"eclipse-2019-64(集成SWT)" 指的是2019年版本的Eclipse IDE,特别地,这个版本集成了SWT(Standard Widget Toolkit)库。SWT是Eclipse项目的一部分,它为Java应用程序提供了一套丰富的用户界面组件,与Java Swing...
- 在Eclipse中创建一个新的Java类,选择适当的样式,例如SWT风格。 #### 三、详细步骤 1. **安装EMF、GEF和VE** - 下载EMF、GEF和VE的最新版本,并解压到指定目录,例如`C:\eclipse\emf`、`C:\eclipse\gef`和`C...
9. SWT与AWT/Swing的对比:分析SWT相对于标准Java GUI库的优势和劣势,帮助开发者选择合适的工具。 10. 示例与实践:通过实际项目示例,演示如何综合运用SWT和JFace开发功能完备的应用程序。 这个系列教程可能是...
针对不同的事件触发状态信息的更新,例如文件夹的打开或关闭、文件的选择等。 #### 图标和图像的应用 图标和图像在GUI设计中扮演着极其重要的角色。良好的图标设计不仅能提升应用程序的美观度,还能帮助用户更...