官网(资料挺多的,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)

二:当然我更推荐用Maven(记得换阿里源,不然墙体太厚)
https://github.com/maven-eclipse/maven-eclipse.github.io
F1 -> Create Maven Project -> 选Quick Start 那一个,版本最新,剩下的就和maven命令行确认一样了
然后再按Github仓库说的添加到pom.xml,保存,下面Maven插件提示,点Now导入即可
Maven 很容易用,例如最简单的:https://www.runoob.com/maven/maven-tutorial.html
以及会用到的:maven集中定义版本号pom
可以参考我的pom.xml

  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包错误)...相关推荐

  1. java fx配置_JavaFX系列-配置开发环境

    JavaFX系列-配置开发环境 本文主要介绍JavaFX环境的搭建和如何部署JavaFX应用 添加JavaFX依赖 在工程 build.gradle 中加入以下内容: plugins { id 'ap ...

  2. 超级详细Window10安装Java JDK 和配置开发环境

    Window10安装Java JDK 和配置开发环境 准备工作 下载 JDK8 百度云下载链接:https://pan.baidu.com/s/1vCmurwpOpAcwTJiXEZIXCA?pwd= ...

  3. Java基础-配置开发环境-安装JDK

    Java基础-配置开发环境-安装JDK 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.计算机基础知识 1>.计算机的组成 计算机有硬件与软件组成. 2>.硬件: 硬 ...

  4. 使用Maven搭建Struts2框架的开发环境

    一.创建基于Maven的Web项目 我使用的是MyEclipse8.5的版本,创建好的Web项目如下所示: 我们知道,一个标准的Maven项目是必须包括[src/main/java],[src/mai ...

  5. 全网最强maven教程-使用Maven搭建Struts2框架的开发环境

    Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. Maven的主要目标是希望开发人员能在最短的时间内理解开发的完整状态.为了达到这个目标,Mav ...

  6. HarmonyOS之搭建和配置开发环境的流程

    一.搭建开发环境流程 DevEco Studio 支持 Windows 系统和 macOS 系统,在开发 HarmonyOS 应用前,需要准备 HarmonyOS 应用的开发环境.环境准备流程如下所示 ...

  7. QT + OpenCV + MinGW 在windows下配置开发环境

           由于研究项目需要,最近开始接触C++界面设计,关于"QT + OpenCV + MinGW在windows下配置开发环境"着实让人头疼,单次配置时间相当长,也十分不容 ...

  8. php larval框架运行环境,4种Windows系统下Laravel框架的开发环境安装及部署方法详解...

    1.准备工作 1.1PHP集成环境 这里我们使用的是XAMPP,XAMPP是一个功能强大的建站集成软件包,采用一键安装的方式,包含PHP7.0.Mysql.Tomcat等.最新版下载地址:PHP 5. ...

  9. 安卓 c 语言开发环境搭建,用C++语言开发Android程序 配置开发环境

    如果你是一个C++语言的死忠,你喜欢C++语言到了偏执的状态,如果不想学习Java语言,或者你很讨厌Java语言,如果你认为Java虚拟机的内存占用太多和执行低效.如果你过度关注Andoird程序的执 ...

  10. 从零开始的 PhotoShop CEP 6开发教程「 1 」配置开发环境

    <从零开始的 PhotoShop CEP 6 开发教程>系列目录 「 0 」目录 「 1 」配置开发环境 「 2 」CEP 文件结构 「 3 」CEP 的运行机制 「 4 」Hello W ...

最新文章

  1. string转成对象_详解Java I/O流(五),对象序列化
  2. Qt Creator 窗体控件自适应窗口大小布局
  3. 腾讯校招历年经典面试汇总:C++研发岗
  4. keras sklearn下两分类/多分类的技术杂谈(交叉验证和评价指标)
  5. 服务高可用利器——限流算法介绍与示例
  6. 物理术语的理解(二)
  7. 关于vim复制剪贴粘贴命令的总结-转
  8. Debian系统下在Qtcreator执行qml程序报:module “QtQuick“ is not installed
  9. 已解决:Multisim仿真出现错误:“发生了仿真错误”“收敛助手”“Transient time point calculation did not converge”
  10. 【金融量化】基金止盈止损法则
  11. CV520直接pin对pin替换 MS520,直接替换,无需修改硬件以及软件
  12. html背景颜色渐变色代码,css3背景渐变色代码
  13. 华硕服务器 u盘安装系统,华硕电脑u盘安装系统教程
  14. 雷神911air 装黑苹果
  15. 数字人正走进现实!AI大脑+高颜值
  16. 拉马努金,天才之超越
  17. [Python]... 和pass
  18. 内部培训——规范原则与重构
  19. mysql 支持分区表,mysql表分区的限制
  20. 计算机基础知识之二进制ppt,计算机基础二进制.ppt

热门文章

  1. 类的加载过程详解之过程二:Linking(链接)阶段
  2. Spring Cloud Bus消息总线(学习总结)
  3. gitbook 配置
  4. Android Span 进阶
  5. 多进程-multiprocess
  6. Linux---Samba文件共享服务
  7. validate使用
  8. java 解压rar文件
  9. static 和 const的解释(转载)
  10. 控制反转与依赖注入概述——Spring IOC/DI(一)