eclipse下搭建SWT图形界面开发环境

article/2025/9/14 4:30:11


什么是SWT


参考:http://www.cppblog.com/baby-fly/archive/2009/10/20/99008.html

        用java的人一定都知道AWT和Swing,而SWT(Standard Widget Toolkit)则是由Eclipse项目组织开发的一套完整的图形界面开发包,虽然当初仅仅是IBM为了编写Eclipse的IDE环境才编写的一套底 层图形界面 API,但是随着Eclipse的大范围使用,人们也开始对这套GUI开发包做了深入的研究,并且不少人都开始转向SWT的使用。也许有人会问,既然有了 Swing, 那为什么还要SWT?答案很简单,因为人们的理念不同。SWT的原理是根据运行者的操作系统不同调用JNI来完成图形界面的绘制的,如果你用的是 Windows,那么建立的窗口就是windows风格的,还可以用XP的皮肤,如果是Linux或者MacOS的话,则在代码不改变的情况下,绘制出相 应风格的界面。而Swing则是完全从底层开始自己“手绘”界面的,这也就导致了速度比较慢和工人的“风格诡异”的问题。当然,由于Sun的强大推动力和 AWT/Swing的普及,很多人仍然在使用Swing作为首选的GUI开发工具包。引用一句话做比喻:Swing就像Java决定不通过操作系统来实现 原生的IO,而是通过磁头马达API自己来读磁盘的扇区。Swing基本上就是这样的,它拿着个底层的“paint(Graphics)”方法,自己来绘 制所有的窗口组件。



配置

Eclipse本身就自带了SWT的相关jar包,所以不用下载,除非你想看看SWT的源码,当然这对于开发者来说是很有好处的。另外,如果不喜欢自己手 写GUI代码的话就去下载一个可视化开发插件吧,目前比较常用的是WindowBuilder Pro(原来的swt designer)


 确定你已经安装:WindoBuilderPro,下载点我     


打开eclipse,新建,在新建向导中,找到SWT/JFace Java Project,单击Next。






接下来输入项目名称,选择JRE(一般默认即可),单击Next,在这一步中,选中Libraries选项卡,单击Add External JARs,添加外部jar包。


这里一共要添加6个,在你的Eclipse的插件(plugins)目录中,分别是:
org.eclipse.swt.win32.win32.x86_3.2.1.v3235.jar;
org.eclipse.swt_3.2.1.v3235e.jar;
org.eclipse.core.commands_3.2.0.I20060605-1400.jar;
org.eclipse.jface.text_3.2.1.r321_v20060810.jar;
org.eclipse.jface_3.2.1.M20060908-1000.jar;
org.eclipse.equinox.common_3.2.0.v20060603.jar


注意:根据版本不同,文件名的数字部分可能会有些不同,添加好后就可以单击finish了(如果这里出现错误,则去 run configuration里修改)
        这时就建立好一个SWT项目了,但是别着急,如果这时按照Run as Java Application的形式运行你的SWT程序的话很可能会提示:Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-win32-3235 in java.library.path。这是由于没有导入SWT原生库的缘故。因此我们要右键单击项目,选择Import,接下来选择General-〉 File System来导入它,这个swt-win32-3235以dll文件的形式存在于..\MyEclipse\eclipse\plugins \org.eclipse.swt.win32.win32.x86_3.2.1.v3235中,通过Browse按钮选择这个目录,然后在窗口左边选中 这个目录,在右边的文件中选中swt-win32-3235.dll这个文件,finish就可以了。


测试

        在新建好的项目中单击右键,选择新建,Designer->JFace->ApplicationWindow,填入新建的类名称和包就可以 新建一个ApplicationWindow了,系统会自动建立好相应的代码框架,选择Run as Java Application,就可以运行这个自动生成的SWT程序了。





http://chatgpt.dhexx.cn/article/t1KxSfEb.shtml

相关文章

SWT布局(Layouts)

每种类型操作系统对屏幕的定义不一样,在开发跨平台应用软件时,我们一般都会使用布局(Layout)来管理复合控件(Composite)中子控件的位置和大小。通过布局,程序员可以充分展示那些埋没已久的艺术细…

SWT简介

SWT简介 1. 为什么要使用SWT?  SWT是一个IBM开发的跨平台GUI开发工具包。在SWT之前,Sun已经提供了一个跨平台GUI开发工具包AWT (Abstract Windowing Toolkit)。虽然AWT框架也使用的是原生窗口部件(native widgets),但是它一直未能突破LCD问题。LCD问…

[转]实时股票数据接口大全

from: http://www.21andy.com/blog/20090530/1313.html 实时股票数据接口大全 股票数据的获取目前有如下两种方法可以获取:1. http/javascript接口取数据2. web-service接口 1.http/javascript接口取数据 1.1Sina股票数据接口 以大秦铁路(股票代码:…

股票数据在线获取

推荐:使用如下地址注册tushare并分享此链接。 https://tushare.pro/register?reg133232 分享此链接,注册tushare. 以前是使用tushare等下载保存到本地数据库后进行计算分析。 现在不想维护本地数据库,想使用时直接在线获取数据。经查找如…

获取股票实时交易数据的方法

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴! 获取股票实时交易数据的方法 注:本文为原创文章,转载时请注明转载地址。炒股有一段时间…

实时股票数据接口 (转,以防有用)

 http://blog.sina.com.cn/s/blog_510844b70102wrvf.html 实时股票数据接口 股票数据的获取目前有如下两种方法可以获取: 1. http/javascript接口取数据 2. web-service接口 1.http/javascript接口取数据1.1Sina股票数据接口 以大秦铁路(…

获取股票数据【实时更新股票数据、创建你的股票数据】、计算交易指标【买入、卖出信号、计算持仓收益、计算累计收益率】

在上一次获取股票数据【使用JQData查询行情数据、财务指标、估值指标】学习了使用JQData来查询股票相关数据, 这次则开始一点点构建咱们的量化交易系统了。 量化交易平台功能模块了解: 对于一个量化交易平台,它主要包含如下功能模块&#x…

使用Python获取股票实时数据和历史数据

决定新建一个专栏,专门研究股票数据的API接口。 由于不是混金融领域的人,百度调研了一会儿,没有找到合适的大公司维护的API接口。 yahoo-finance PyPI 这玩意架梯子都访问不到数据,不知道乍回事。许多大牛维护的pip包都是基于这…

Tushare免费获取股票数据:实时数据,历史数据,行情数据

一 操作手册 引导用户顺利开始使用Tushare Pro数据,以下步骤将带您开始Tushare数据之旅: 用户注册登录后可调用数据:https://tushare.pro/register?reg399205 二 如何获取TOKEN凭证 1、登录成功后,点击右上角->个人主页 2、…

如何用 Python 获取实时的股票数据?

这个我会!先上图 这篇回答中,我将向你展示两种不同的代码版本(加强版和一般版) 代码运行环境说明(非常重要) Python版本要求 Python 3 需要安装的库 efinance 库的安装方法是:打开 cmd&#x…

怎么用Python获取股票的实时数据?

学习目标: 应用industry实现行业股票列表的获取应用history_bars实现股票合约历史行情数据获取应用get_fundamentals实现股票基本面数据获取使用query的过滤条件完成股票数据的过滤应用scheduler定时器实现股票数据定期获取 1、 数据接口种类 获取指定行业、板块…

SAP UI5 Focus related

tap, keydown, keypresssap.ui.core.FocusHandlersap.ca.scfld.md.app.CommonHeaderFooterHelperevent new jQuery.Event(originalEvent);focusin, activate, blur, focusout, sapfocusleaveoElement._handleEvent(oEvent); 要获取更多Jerry的原创…

Consider defining a bean of type ‘com.qf.user.consumer.feign.api.UserFeignAPI‘ in your configuration

Consider defining a bean of type ‘com.qf.user.consumer.feign.api.UserFeignAPI’ in your configuration… 引导类加注解EnableFeignClients

Prime算法 C++实现

Prime算法 算法介绍: 课本实现方法: 先从最小堆说起(heap):任一结点的关键码均小于或等于它的左右子女的关键码,位于堆顶(即完全二叉树的根结点的位置)的结点的关键码是整个集合中最…

【数学】Prime-Factor Prime

Prime-Factor Prime 题目描述 A positive integer is called a "prime-factor prime" when the number of its prime factors is prime. For example, 12 is a prime-factor prime because the number of prime factors of 12223 is 3, which is prime. On the other…

Prime Factory (Training, Math)

Prime Factory (Training, Math) 题目描述 Your task is simple: Find the first two primes above 1 million, whose separate digit sums are also prime. As example take 23, which is a prime whose digit sum, 5, is also prime. The solution is the concatination of t…

Fiori Fundamentals和SAP UI5 Web Components

这周有位同事邀请我给团队讲一讲SAP技术的演进历史,所以我准备了下面几个主题来介绍。 其中SAP的技术回顾和演进,我的思路就是从前后台两方面分别介绍。 我画了一张非常简单的图: 去年5月我写过一篇文章:SAP UI和Salesforce UI开…

C++Prime Plus(3)

目录 51.抽象和类52.类的使用53.对象构造54.对象析构55.const与类56.this指针57.类作用域58.运算符重载59.运算符重载的实例60.友元61.运算符重载-成员或非成员62.类的类型转换63.拷贝构造函数与赋值运算符重载64.静态数据成员65.静态成员函数 51.抽象和类 类型的构成 1.数据占…

C++Prime Plus(6)

目录 92.STL(1)容器93.STL(2)迭代器94.STL(3)函数对象95.STL(4)算法 92.STL(1)容器 标准模板库 STL(Standard Template Library),是 C 标准库的一部分,不需要单独安装,只需要#include 头文件。STL提供了容器&#xff…

C++Prime Plus(5)

目录 85.异常(1)异常处理机制86.异常(2)exception类87.RTTI(1)88.RTTI(2)89.类型转换运算符90.string类91.智能指针 85.异常(1)异常处理机制 异常:运行错误(比如无法打开文件,动态内存申请失败),导致程序无法继续正常…