一个简单的SWT程序实例及详解-Java基础-Java-编程开发

全面探索SWT/JFace:Java GUI编程 本文还有配套的精品资源,点击获取 简介:本文详细介绍了SWT和JFace,这是Eclipse项目中的两个Java GUI编程库。SWT提供了一个与原生控件交互的用户界面,并通过JNI提高性能。JFace则在SWT之上增加了一层抽象,简化了GUI编程,并引入了数据绑定和MVC架构等概念。文章将覆盖基础控件使用、布局管理、事件处理以及如何进行高级主题的学习,例如集成SWT和JF... 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

让我们从简单的 HelloWorld 应用程序开始。

一、将SWT添加到工程的类路径中

首先建立一个java工程。在开始使用SWT之前,需要将SWT库文件添加到工程的类路径中。步骤如下:

1. 下载SWT。在Eclipse SDK的下载页面中,提供了独立版本的SWT下载。找到标有SWT Binary and Source 的栏目。下载适合你操作系统的版本,不用解压,直接保存到硬盘中。

2. 在Eclipse菜单栏,选择File-〉Import...打开导入向导

3. 选择Existing Projects into Workspace ,点击Next按钮

4. 选择 Select archive file并使用 Browse...按钮来找到你刚才下载的SWT文件。

5. 点击Finish按钮,完成SWT导入。

6. 右键点击你建立的工程,选择Properties 来打开Properties对话框。

7. 选择 Java Build Path tab并点击Add按钮. -> Projects

8. 选择 org.eclipse.swt工程, 点击 OK,完成添加SWT库到你的工程中(见图1).

图 1

二、 SWT 代码

现在在你建立的java工程中,新建一个java文件,取名为 HelloWorld。在HelloWorld.java文件中把main()方法覆盖为以下代码:

1 public static void main(String[] args) {
2 Display display = new Display();
3 Shell shell = new Shell(display);
4 shell.setText( " Hello World " );
5 shell.setBounds( 100 , 100 , 200 , 50 );
6 shell.setLayout( new FillLayout());
7 Label label = new Label(shell, SWT.CENTER);
8 label.setText( " Hello World " );
9 Color red = new Color(display, 255 , 0 , 0 );
10 label.setForeground(red);
11 shell.open();
12 while ( ! shell.isDisposed()) {
13 if ( ! display.readAndDispatch()) display.sleep();
14 }
15 red.dispose();
16 display.dispose();
17 }

注:

在覆盖了上述代码后, 选择菜单栏中的 Source -> Organize Imports命令 (或者按Ctrl Shift O) 来把需要引用的SWT包导入到HelloWorld.java文件中 。

以下是对各行代码的详细解释:

第2行:每个基于SWT的应用程序都有一个Display类的实例。用来将低层平台和SWT进行链接。除了管理SWT的事件循环,还能访问SWT需要的平台资源。在16行,display实例将会提交给垃圾收集器。

第3行:每一个窗口都有一个Shell窗口框架,来与用户进行交互。Shell像所有的windows系统一样来处理动作行为,并作为窗口控件的放置场所。

第4行: setText()方法设置窗口的标题.

第5行: setBounds() 方法设置窗口的大小和放置的位置. 在这个例子中, 设置窗口为200个像素宽,50个像素高,并放在离屏幕的左上角100x100像素的位置上。

第6行: setLayout()方法 设置窗口框架的布局. FillLayout,充满式布局管理器,使得组件大小会尽量的充满整个容器.SWT的布局管理器会在以后详细介绍。

第7行:在shell上新建一个简单的label组件并居中显示label的文本内容。

第8行: setText() 方法 设置label的文本内容。

第9行:创建一个红色的颜色类的实例。你也可以使用以下语句获得系统红色的实例:

Color red = display.getSystemColor(SWT.COLOR_RED);

第10行: setForeground() 方法 设置label的前景色

第11行:到目前为止,窗口框架还是不可见的。通过open()方法使得窗口可见。

第12行: while语句循环检测窗口有没有关闭。

第13行:display 控制事件的循环. readAndDispatch() 方法从平台的事件队列中读取事件,并分配他们到合适的处理程序(接收者)。只要队列中一直有事件可以处理,这个方法一直返回true,当事件队列为空时,则返回false(因此允许用户界面UI线程出于sleep状态直到事件队列不为空)。

第15,16行:当循环检测到窗口被关闭时,需要将color,display和一些相关联的平台资源释放。注意到系统颜色实例(colors)将会被提交释放。

二、 运行这个例子

通常情况下,为了启动一个java应用程序,会使用Run As -〉 Java Application 命令。在这里,如此运行将会抛出 UnsatisfiedLinkError 异常,说明没有找到 SWT 的本地库。如果运行 Run As > SWT Application 命令,将会弹出 SWT 启动配置窗口,见图 2 ,在图 2 中可以点击 run 按钮。

图 2

点击 run ,运行结果图 3 。

图 3

Java SWT库详解与安装指南 在Java的世界里,SWT(Standard Widget Toolkit)类库作为一员,扮演着图形用户界面(GUI)编程的重要角色。Java SWT起源于Eclipse项目,它的设计理念是为Java应用提供一种更接近操作系统原生组件的GUI开发方式。通过SWT,Java程序员能够利用不同平台的本地GUI组件,实现跨平台应用。这与Java AWT和Swing的虚拟机上运行的UI组件有所区别,SWT的出现改变了Java图形界面编程的面貌,减少了GUI开发中的抽象层,提高了性能和用户体验。 阅读详情

相关推荐

Java SWT图形界面开发实战指南

Java SWT(Standard Widget Toolkit)是Eclipse基金会推出的一套本地化图形界面开发库,与传统的AWT和Swing不同,SWT通过直接调用操作系统原生控件(如Windows的Win32 API、Linux的GTK等),从而实现更接近操作系统的外观和更高的性能表现。SWT的基础控件是构建图形界面的最小单元,包括按钮(Button)、标签(Label)、文本框(Text)、下拉框(Combo)和列表框(List)等。它们虽然功能简单,但却是构建复杂界面的基础。

weixin_33375360的博客 1411

运行java SWT例子

1.在http://download.eclipse.org/eclipse/downloads页面下载jar包; 2.建议选择编译好的稳定版本; 3.选择“Example Plug-ins”进行下载; 4.解压缩下载的文件,将“eclipse/plugins/org.eclipse.swt.examples.<exampleName>.source_<version>.jar”复制到Eclipse安装文件的“plugins”文件夹下; 5.重启Eclipse,依次选择:“窗口”-》“显示视图”-》“其他”

蔡先生的专栏 3024

深入探索SWT插件在Java GUI开发中的应用

本文还有配套的精品资源,点击获取 简介:SWT(Standard Widget Toolkit)是Java编程环境中用于构建用户界面的开源库,由IBM为Eclipse项目开发。SWT插件通过直接调用操作系统API,实现与原生界面的紧密集成,提升了跨平台一致性及性能。本文深入探讨SWT插件及其在Java GUI开发中的应用,包括关键控件如按钮、文本框、列表、表格、树形视图和滚...

weixin_42575109的博客 1744

Java桌面应用程序设计:SWT 简介

     Java语言的声望和它在桌面应用程序(GUI程序)所取得的成就显然极不相符,至今仍然很少能看到非常成功Java桌面程序。虽然有JBuilder, Netbean,JProbe等大型软件作为代表,但这仍不能证明Java的GUI程序是成功的:它们的外观总是和同一操作系统平台下的其它软件显得格格 不入。对机器配置的需求也似乎永无止境,这使得它们只能被一些总是拥有当前最高性能PC的程序员们所容忍

1419

医疗领域BGE-M3模型微调全流程:从数据准备到效果评估

本文详细介绍了医疗领域BGE-M3模型的微调全流程,从数据准备到效果评估。通过医疗数据微调,BGE-M3模型在临床问答、病历检索等场景中表现显著提升,能够准确理解医学术语之间的细微差别。文章还提供了实战练习代码和效果评估指标,帮助开发者快速掌握医疗文本嵌入模型的应用技巧。

weixin_29098367的博客 282

【Unity】入门教程第一期-下载安装Unity编辑器(下)

讲解如何在Unity Hub中下载Unity编辑器以及IED环境

Xiaoxin的博客 2042

JAVA Swt初识

&lt;style&gt; &lt;!-- .article {padding:1em; background:white} .abstract {padding:1em 1ex 1em 2em} .author, .date {padding:0.5ex 0 0 0} h1.title, h2.major, h3.minor, h3.listing {margin:...

java开发指南博客 【转载】 895

论文理解【LLM-OR】—— 【PaMOP】Guiding Large Language Models in Modeling Optimization Problem

针对 LLM 求解运筹优化任务,PaMOP 通过约束划分树分离子问题,实现复杂优化问题的分块建模,并结合求解器反馈与反向翻译一致性检查迭代纠错,降低子任务复杂度,提升可执行率与建模准确性。

佚失的诗篇 1007

java 界面 swt_Java界面 SWT 开发基础——Display and Shell

Display 基本概述与Shell 类的基本结构本次实验主要包含创建一个空白的 Display,并在其中建立 Shell 的父类,Shell 中设置按钮,通过按钮创造子窗口。此外在父窗口设置中加入了图标设置。代码来自《EclipseSWT/JFace 核心应用》清华大学出版社import org.eclipse.swt.SWT;import org.eclipse.swt.events.Sele...

weixin_39653622的博客 574

OPTI Toolbox v2.28 安装与 3 个求解器补全:SCIP、SeDuMi、MOSEK 配置详解

本文详细介绍了OPTI Toolbox v2.28在MATLAB环境下的完整安装指南,包括SCIP、SeDuMi和MOSEK三个关键求解器的配置与优化技巧。通过分步指导和实战案例,帮助用户高效搭建强大的优化工具包,提升混合整数规划、二次约束二次规划等复杂问题的求解效率。

weixin_29039773的博客 352

AI驱动的CNC闭环加工系统:边缘实时控制与IIoT反馈实践

闭环控制是工业自动化的核心概念,指通过实时反馈调节系统输出以逼近目标值;其技术原理在于构建短于被控对象时间常数的确定性反馈链路,从而保障动态响应精度与稳定性。在智能制造落地中,AI正从离线分析工具演进为嵌入式实时决策单元,其核心价值在于将工艺知识模型化、控制指令轻量化、执行路径边缘化。典型应用场景包括CNC加工过程中的振动自适应调参、刀具磨损在线补偿及多机协同优化。本实践聚焦FANUC 0i-MF平台,基于Modbus TCP硬实时通信与轻量LSTM+CNN融合模型,实现217毫秒级AI推理与PMC寄存器直

weixin_29704001的博客 323

java中swt包_org.eclipse.swt包的引入

http://blog.youkuaiyun.com/aerchi/article/details/43762535我在做Java可视化程序时,用到下面这几个包,应该怎么处理呢?:(Eclipse环境)importorg.eclipse.swt.SWT;importorg.eclipse.swt.widgets.Display;importorg.eclipse.swt.widgets.Shell;提示...

weixin_42297519的博客 1808

从CAD到Web:高效转换STEP/IGES模型为GLB格式的实践指南

本文详细介绍了如何将工业设计中的STEP/IGES模型高效转换为Web友好的GLB格式。通过PythonOCC和gltf-pipeline等工具链,实现从CAD到Web的无缝转换,大幅提升模型加载速度和展示效果。文章包含实战案例、优化技巧和常见问题解决方案,帮助开发者快速掌握3D模型转换技术。

weixin_29072299的博客 509

一个简单的SWT程序实例及详解

本文译自《 Eclipse.Building.Commercial.Quality.Plug.ins.2nd.Edition 》第四章第二节,详细解释了 SWT 程序的语句,希望对入门者有所帮助。 让我们从简单的 HelloWorld 应用程序开始。  一、将SWT添加到工程的类路径中 首先建立一个java工程。在开始使用SWT之前,需要将SWT库文件添加到工程的类路径中。步骤

cpenet的专栏 3896

Lammps模拟剪切作用下的位错滑移

Lammps模拟位错与障碍物作用。在lammps中实现周期性位错阵列模型模拟剪切作用下1/2刃位错与障碍物的交互作用

Rockyoung 3461

华为OD机考双机位C卷 - 构成正方形的数量 (Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 成正方形的数量 (OD上机考试双机位C卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 5939

swt包下载,swt包引入(一个简单的SWT程序实例及详解)

让我们从简单的 HelloWorld 应用程序开始。 swt包下载可以在eclipse网站上下 进到下面这个地址里http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/S-3.4M4-200712131700/swt-3.4M4-win32-win32-x86.zip点Download

hbiao的博客 5561

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

SWT开发Java应用程序GUI入门

第一次做了Java GUI,我选择用elipse自己的前段开发工具 SWT/JFace。这篇文章是基于eclipse MARS.2.  用SWT编写的GUI的风格如下:                                                                       1、 SWT中的一些概念1.1 Display & Shell Display 和 She

王以山的专栏 3万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

使用Eclipse进行SWT编程

使用Eclipse进行SWT编程1. 为什么要使用SWT?SWT是IBM开发一套跨平台的GUI开发框架。为什么IBM要创建另一种GUI呢?为什么他们不使用现有的Java GUI框架呢?要回答这些问题,我需要回到Java的早期时代。Sun已经创建了一套跨平台的GUI框架 AWT (Abstract Windowing Toolkit)。 这个AWT框架使用了本地窗口组件(native

一个人的精彩 9114

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

[Eclipse笔记]一个最简单的SWT程序

我们来看一段最简单的SWT程序是什么样子:package sean.test.swt;import org.eclipse.swt.widgets.Display;import org.eclipse.swt.widgets.Shell;public class SimplestSWT {    public static void main(String[] args) {        Dis

3149

SWT 和 JFace, 第 1 部分:如何创建简单的 SWT 应用程序

  在这篇 SWT 和 JFace 系列的第一篇文章中,可以了解如何使用 Java™、Eclipse 以及 SWT 和 JFace 库创建简单的 SWT 应用程序。 还可以了解如何使用基本的控件和布局创建简单的 SWT GUI。可以使用标准窗口小部件工具箱(Standard Widget Toolkit,SWT)和 JFace 库来开发用于 Eclipse 环境的图形用户界面,而且还可以将

CS_Mercy的专栏 1090

在银河麒麟中开发SWT程序

随着国产化系统的日益普及,一些CS应用也可以迁移到国产化系统中。

fenghaibo8149的博客 1904

使用Eclipse进行SWT编程(1)

使用Eclipse进行SWT编程(1)"The best way to predict the future is to invent it."—Alan Kay1. 为什么要使用SWT?SWT是IBM开发一套跨平台的GUI开发框架。为什么IBM要创建另一种GUI呢?为什么他们不使用现有的Java GUI框架呢?要回答这些问题,我需要回到Java的早期时代。Sun已经创建了一套跨平台的GUI框架

hunterK的专栏 5314
上一篇: 你应该知道的10件关于Java 6的事情-Java基础-Java-编程开发
下一篇: Java数字签名-Java基础-Java-编程开发
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值