java的GUI之SWT框架 配置开发环境(包含但不限于WindowBuilder完整教程,解决Unknown GUI toolkit报错,解决导入SWT包错误)...
官网(资料挺多的,API文档截图以及示例都有):https://www.eclipse.org/swt/
克隆官方仓库
git clone --depth=1 git://git.eclipse.org/gitroot/platform/eclipse.platform.swt.git
里面只有 org.eclipse.swt.snippets 目录里面有 300多个代码片段,初学直接看这部分源码即可。
其他 example 目录是成品小 demo,学完snippet再看,然后就能做东西了
本次环境:
Eclipse IDE for Java Developers
Version: 2018-12 (4.10.0)
Build id: 20181214-0600
JAVA:JDK11
Windows10 Pro 预览版 18334——19H1
去网上找了配置SWT开发环境的,发现很多教程都过时了。SWT是一个利用Java的JNI对接原生系统的框架
(做到了系统原生里有的GUi Api 就尽量用系统的,没有的就绘制,大大提高了运行效率,是真正可以考虑的贴合系统的GUI,不过理论上移植性比Swing Awt差点)
被GFW和Dns污染光环之下的请换源(享受秒开的喜悦):https://lug.ustc.edu.cn/wiki/mirrors/help/eclipse#使用科大镜像更新插件
一,Eclipse里安装WindowBuilder来可视化设计SWT程序的完整教程
(完美解决Unknown GUI toolkit或无法导入swt包的错误报错):
如果仅仅是想在Eclipse里使用WindowBuilder来可视化设计SWT程序,可以参考按这里做:eclipse安装WindowBuilder插件以及简单使用(近更) - Akatsuki - CSDN博客 (如果last good build不行可以选第一个Lastest)
注意:上面这教程中的
“然后进入到工程,右键src->new->other->WindowBuilder->Swing Designer->Application Window->next->起名->Finish”
应改为:
“然后进入到工程,右键src->new->Packages,(必须勾上Create package-info.java),再右击src->other->WindowBuilder->Swing Designer->SWT->Application Window->next->起名->Finish”
然后如果design界面还是用不了,提示Unknown GUI toolkit The parser parsed the compilation unit, but can't identifyany GUI toolkit, If you wish to use SWT,please add the appropriate SWT jars to your classpath, or create a new SWT/JF
点击Switch to code切换到代码区
然后就如下图操作(点击代码区import所在行号栏里的×号):
点击+号展开import,再双击 Add 'requires org.*' to module-info.java
然后打开同工程里的module-info.java,鼠标悬浮在requires后面的org.eclipse.swt.win32.win32.x86_64上,然后双击Move classpath entry 'org.eclipse.swt.win32*',
如果有 requires swt; 那一行就删掉(因为我截图里写错了又懒得改)
为什么需要在module-info.java里添加requires?这是Java9引入的新特性,至于作用和用法,我还在思考....
然后SWT报错少了一些,嗯,快成功了。
先下载swt.jar并解压到任意一个目录,下载请看这里:下载SWT
导入SWT的ClassPath
在Eclipse里添加额外的Class Folder,选择解压好的目录(即swt.jar所在目录)
然后再添加DLL支持,具体操作实例:
在Eclipse安装目录下的plugins目录下,找到文件org.eclipse.swt.win32.win32.x86_64_3.109.0.v20181204-1801.jar(x86_64后面的是版本号,你我的可能版本略微不同),复制出来并解压到某一目录(该jar文件里面有4个dll文件)
然后在Eclipse包资源管理器中,右击项目名 → 导入 → 常规 → 文件系统 → 下一步 → 浏览 并选择dll文件所在目录,勾选4个dll文件确认即可。
发现包资源管理器都没红×了吧!那就是成功了
最后点Main.java(Eclipse生成的swt程序示例),然后切换design界面,点Reparse重新加载可视化界面即可
最后效果:
测试添加组件(一切正常)
附上包资源一栏截图:
二,在非Eclipse里配置SWT开发环境,例如VSCode
1,下载SWT:
进入https://www.eclipse.org/swt/
在Lastest Release里点击你Eclipse对应的版本号。
进入后你会发现这里有你选择的Eclipse版本所对应的全部SDK及其运行环境(如下图),
往下翻找到SWT Binary and Source,点击swt-<Eclipse版本号>-win32-win32-x86_64.zip下载即可
下载完成。
写好HelloWorld 并按照以下目录结构放置
+ lib
- swt.jar
+ src
- HelloWorld.java
1 package org.yu; 2 3 /** 4 * Hello world! 5 * 6 */ 7 8 import org.eclipse.swt.widgets.Display; 9 import org.eclipse.swt.widgets.Shell; 10 import org.eclipse.swt.SWT; 11 12 public class App { 13 public static void main(String[] args){ 14 Display aDisplay = new Display(); 15 Shell shell = new Shell(aDisplay,SWT.); 16 shell.setLocation(200, 200); 17 shell.setSize(400, 300); 18 shell.setText("Title is Mine"); 19 shell.open(); 20 21 while (!shell.isDisposed()) // 窗体是否关闭 22 { 23 if (!aDisplay.readAndDispatch()) // 检验 Display 线程状态是否忙 24 aDisplay.sleep(); // Display 类线程休眠 25 } 26 27 aDisplay.dispose(); // 注销 Display 对象资源 28 } 29 }
View Code
测试一下
javac -classpath "../lib/swt.jar" HelloWorld.java
2,配置SWT环境(以VSCode为例)
配好JDK环境变量,然后按照VSCode官方说明安装好Java插件,然后有几种方法:
一:把 swt.jar 加入CLASSPATH变量如 E:\japi\swt.jar,然后在VSCode里设置,特别麻烦....(但是可以用到最新版4.924)
1 <?xml version="1.0" encoding="UTF-8"?> 2 3 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6 7 <groupId>org.yu</groupId> 8 <artifactId>demoSwt</artifactId> 9 <version>1.0-SNAPSHOT</version> 10 11 12 13 <name>demoSwt</name> 14 <!-- FIXME change it to the project's website --> 15 <url>http://www.example.com</url> 16 17 <repositories> 18 <repository> 19 <id>maven-eclipse-repo</id> 20 <url>http://maven-eclipse.github.io/maven</url> 21 </repository> 22 </repositories> 23 24 <properties> 25 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 26 <maven.compiler.source>1.8</maven.compiler.source> 27 <maven.compiler.target>1.8</maven.compiler.target> 28 <swt.version>4.6.1</swt.version> 29 </properties> 30 31 <dependencies> 32 <dependency> 33 <groupId>junit</groupId> 34 <artifactId>junit</artifactId> 35 <version>4.11</version> 36 <scope>test</scope> 37 </dependency> 38 <!-- <dependency> 39 <groupId>org.eclipse.swt</groupId> 40 <artifactId>org.eclipse.swt.win32.win32.x86</artifactId> 41 <version>${swt.version}</version> 42 - To use the debug jar, add this - 43 <classifier>debug</classifier> 44 </dependency> --> 45 <!-- <dependency> 46 <groupId>org.eclipse.swt</groupId> 47 <artifactId>org.eclipse.swt.win32.win32.x86_64</artifactId> 48 <version>${swt.version}</version> 49 </dependency> --> 50 <!-- <dependency> 51 <groupId>org.eclipse.swt</groupId> 52 <artifactId>org.eclipse.swt.gtk.linux.x86</artifactId> 53 <version>${swt.version}</version> 54 <classifier>debug</classifier> 55 </dependency> --> 56 <dependency> 57 <groupId>org.eclipse.swt</groupId> 58 <artifactId>org.eclipse.swt.gtk.linux.x86_64</artifactId> 59 <version>${swt.version}</version> 60 <classifier>debug</classifier> 61 </dependency> 62 <!-- <dependency> 63 <groupId>org.eclipse.swt</groupId> 64 <artifactId>org.eclipse.swt.cocoa.macosx.x86_64</artifactId> 65 <version>${swt.version}</version> 66 </dependency> --> 67 </dependencies> 68 69 <build> 70 <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --> 71 <plugins> 72 <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle --> 73 <plugin> 74 <artifactId>maven-clean-plugin</artifactId> 75 <version>3.1.0</version> 76 </plugin> 77 <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging --> 78 <plugin> 79 <artifactId>maven-resources-plugin</artifactId> 80 <version>3.0.2</version> 81 </plugin> 82 <plugin> 83 <artifactId>maven-compiler-plugin</artifactId> 84 <version>3.8.0</version> 85 </plugin> 86 <plugin> 87 <artifactId>maven-surefire-plugin</artifactId> 88 <version>2.22.1</version> 89 </plugin> 90 <plugin> 91 <artifactId>maven-jar-plugin</artifactId> 92 <version>3.0.2</version> 93 </plugin> 94 <plugin> 95 <artifactId>maven-install-plugin</artifactId> 96 <version>2.5.2</version> 97 </plugin> 98 <plugin> 99 <artifactId>maven-deploy-plugin</artifactId> 100 <version>2.8.2</version> 101 </plugin> 102 <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle --> 103 <plugin> 104 <artifactId>maven-site-plugin</artifactId> 105 <version>3.7.1</version> 106 </plugin> 107 <plugin> 108 <artifactId>maven-project-info-reports-plugin</artifactId> 109 <version>3.0.0</version> 110 </plugin> 111 </plugins> 112 </pluginManagement> 113 </build> 114 </project>
View Code
附上Maven换源方法:
1 ~/.m2$ cat settings.xml 2 <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 5 https://maven.apache.org/xsd/settings-1.0.0.xsd"> 6 7 <mirrors> 8 <mirror> 9 <id>alimaven</id> 10 <name>aliyun maven</name> 11 <url>http://maven.aliyun.com/nexus/content/groups/public/</url> 12 <mirrorOf>central</mirrorOf> 13 </mirror> 14 </mirrors> 15 </settings>
View Code
Maven 方式只在 Linux 下测试通过,Windows 可能还需用把dll文件放到class生成目录里(可能),MacOSX(买不起....)
但是Maven私人仓库的已经停更了,懂的可以自己做个私人仓库更新到最新版,然后按照原作者那样放 github 就行(不用服务器)
效果图(由于SWT的原理,所以皮肤会和系统一致)
没有关闭按钮:只是因为用了SWT.NO这个常量
最后放个快速入门资料(在两个qq群找到的,非常感谢他们,侵权请联系):
链接: https://pan.baidu.com/s/1zid8jDgl4wQFSle2OD3lcg
提取码: dbw5
当然在 百度文档搜 SWT 也是能找到不少资料的(想不到吧hh)
最后,引用一句话:JFace与SWT的关系好比Microsoft的MFC与SDK的关系
转载于:https://www.cnblogs.com/yucloud/p/SWT_config.html
java的GUI之SWT框架 配置开发环境(包含但不限于WindowBuilder完整教程,解决Unknown GUI toolkit报错,解决导入SWT包错误)...相关推荐
- java fx配置_JavaFX系列-配置开发环境
JavaFX系列-配置开发环境 本文主要介绍JavaFX环境的搭建和如何部署JavaFX应用 添加JavaFX依赖 在工程 build.gradle 中加入以下内容: plugins { id 'ap ...
- 超级详细Window10安装Java JDK 和配置开发环境
Window10安装Java JDK 和配置开发环境 准备工作 下载 JDK8 百度云下载链接:https://pan.baidu.com/s/1vCmurwpOpAcwTJiXEZIXCA?pwd= ...
- Java基础-配置开发环境-安装JDK
Java基础-配置开发环境-安装JDK 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.计算机基础知识 1>.计算机的组成 计算机有硬件与软件组成. 2>.硬件: 硬 ...
- 使用Maven搭建Struts2框架的开发环境
一.创建基于Maven的Web项目 我使用的是MyEclipse8.5的版本,创建好的Web项目如下所示: 我们知道,一个标准的Maven项目是必须包括[src/main/java],[src/mai ...
- 全网最强maven教程-使用Maven搭建Struts2框架的开发环境
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. Maven的主要目标是希望开发人员能在最短的时间内理解开发的完整状态.为了达到这个目标,Mav ...
- HarmonyOS之搭建和配置开发环境的流程
一.搭建开发环境流程 DevEco Studio 支持 Windows 系统和 macOS 系统,在开发 HarmonyOS 应用前,需要准备 HarmonyOS 应用的开发环境.环境准备流程如下所示 ...
- QT + OpenCV + MinGW 在windows下配置开发环境
由于研究项目需要,最近开始接触C++界面设计,关于"QT + OpenCV + MinGW在windows下配置开发环境"着实让人头疼,单次配置时间相当长,也十分不容 ...
- php larval框架运行环境,4种Windows系统下Laravel框架的开发环境安装及部署方法详解...
1.准备工作 1.1PHP集成环境 这里我们使用的是XAMPP,XAMPP是一个功能强大的建站集成软件包,采用一键安装的方式,包含PHP7.0.Mysql.Tomcat等.最新版下载地址:PHP 5. ...
- 安卓 c 语言开发环境搭建,用C++语言开发Android程序 配置开发环境
如果你是一个C++语言的死忠,你喜欢C++语言到了偏执的状态,如果不想学习Java语言,或者你很讨厌Java语言,如果你认为Java虚拟机的内存占用太多和执行低效.如果你过度关注Andoird程序的执 ...
- 从零开始的 PhotoShop CEP 6开发教程「 1 」配置开发环境
<从零开始的 PhotoShop CEP 6 开发教程>系列目录 「 0 」目录 「 1 」配置开发环境 「 2 」CEP 文件结构 「 3 」CEP 的运行机制 「 4 」Hello W ...
最新文章
- string转成对象_详解Java I/O流(五),对象序列化
- Qt Creator 窗体控件自适应窗口大小布局
- 腾讯校招历年经典面试汇总:C++研发岗
- keras sklearn下两分类/多分类的技术杂谈(交叉验证和评价指标)
- 服务高可用利器——限流算法介绍与示例
- 物理术语的理解(二)
- 关于vim复制剪贴粘贴命令的总结-转
- Debian系统下在Qtcreator执行qml程序报:module “QtQuick“ is not installed
- 已解决:Multisim仿真出现错误:“发生了仿真错误”“收敛助手”“Transient time point calculation did not converge”
- 【金融量化】基金止盈止损法则
- CV520直接pin对pin替换 MS520,直接替换,无需修改硬件以及软件
- html背景颜色渐变色代码,css3背景渐变色代码
- 华硕服务器 u盘安装系统,华硕电脑u盘安装系统教程
- 雷神911air 装黑苹果
- 数字人正走进现实!AI大脑+高颜值
- 拉马努金,天才之超越
- [Python]... 和pass
- 内部培训——规范原则与重构
- mysql 支持分区表,mysql表分区的限制
- 计算机基础知识之二进制ppt,计算机基础二进制.ppt