`

Eclipse插件开发之基础篇(6) SWT简介

 
阅读更多

SWT(Standard Widget Toolkit)是为Eclipse平台开发的GUI工具包。SWT构建了Eclipse的UI,但SWT并不依赖Eclipse,也可以被单独使用。

 1. SWT的特征

  现在的Eclipse中绝大部分的UI都由SWT的组件构成。

  SWT最大的特征就是不实现Pure Java,对各个OS平台API的依赖在必要的时候才会通过java去调用。由此反映速度和OS中的自然应用相同。另外,依赖于OS API部分都被封装在了SWT内部,用SWT开发出来的应用程序,在更换了SWT库或者OS的时候都不会受到影响。

 2.SET的开发环境和运行环境

  SWT不仅可以用于开发Eclipse的插件,也可以用于单独的GUI的开发。作为单独的应用程序运行时,需要与OS对应的SWT库。

  请确认在Eclipse的plugins文件夹中有SWT的JAR文件存在(Windows的情况下是org.eclipse.swt.win32.win32.x86_3.4.1.v3449c.jar等)。

  发布使用SWT开发的应用程序时,SWT库文件也要一起发布。单独的SWT库在Eclipse的下载页面就可以找到。页面下方的[Binary and Source]发布了各种OS下的版本。现在已经提供了Windows、WindowsCE、Linux、Solaris、QNX、AIX、HP-UX、MacOS的运行库。

 3.SWT的基本

 最简单的SWT应用

  下面代码是最简单的SWT应用程序。

代码1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public static void main(String[] args) {
    // 生成Display的对象①
    Display display = new Display();
    // 生成Shell的对象②
    final Shell shell = new Shell(display);
    shell.setText("SWT的例子");
    shell.setLayout(new FillLayout(SWT.VERTICAL));
    // 生成Label对象③
    Label label = new Label(shell, SWT.BORDER);
    label.setText("请点按钮");
    // 生成Button对象③
    final Button button = new Button(shell, SWT.PUSH);
    button.setText("OK");
    // 为Button的时间定义监听器④
    button.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent arg0) {
            MessageBox messageBox = new MessageBox(shell, SWT.OK
                    | SWT.ICON_INFORMATION | SWT.APPLICATION_MODAL);
            messageBox.setMessage("按下了(" + button.getText() + ")按钮");
            messageBox.open();
        }
    });
    //打开shell对象 ⑤
    shell.pack();
    shell.open();
    //结束前一直循环 ⑥
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch()) {
            display.sleep();
        }
    }
    //释放display对象⑦
    display.dispose();
}

 

  1.生成Display的对象

  Display对象是平台GUI层和SWT间的连接。Widget等,SWT的GUI组件通过Display对象和执行平台提供的API。

 

  2.生成Shell的对象

  Shell对象负责画面窗体的显示。通过Shell对象可以调整窗体的大小,标题以及对窗体进行布局管理。

 

  3.在Shell对象上生成Widget

  SWT中把输入框、按钮等GUI控件称为Widget。这个步骤为前一步生成的window配置了Widget。并且对每个控件的text属性、在画面上的位置等等做了设置。

 

  4.为Button的事件定义监听器

  按下按钮、选择下拉框等等的用户动作、在Widget中通过事件进行传达。这个步骤为事件生成了对应的处理--listener,并且注册到了Widget上。

 

  5.打开shell对象

  对Widget的设置全部结束后,就可以让窗体显示了。窗体显示时需要调用Shell对象的open方法。open方法在内部启动一个新线程对窗体显示。

 

  6.结束前一直循环

  因为SWT的应用会启动一个新的线程,如果不阻塞主线程的话整个应用就会结束了。为了不让主线程结束,我们用了一个while循环,知道shell关闭位置一直循环。

 

  7.释放display对象

  SWT并不是纯java的,框架会依赖一些自然语言的API。所以,生成的SWT对象要显式的调用dispose方法来执行销毁动作。但是,dispose方法会递归调用子对象的dispose方法,所以想label和button之类的Widget就不用再调用dispose方法了。 

 

 转载请注明出处,http://www.cnblogs.com/liuzhuo.

分享到:
评论

相关推荐

    Eclipse插件开发 第1篇到第4篇 开发基础 核心技术 高级进阶 综合实例 eclipse 插件安装方法.zip

    首先,我们来看《Eclipse插件开发 学习笔记 第1篇 开发基础》。这一部分通常会介绍插件开发的基本概念,包括Eclipse插件体系结构、OSGi框架以及如何创建第一个Eclipse插件项目。开发者会学习到Plugin.xml文件的重要...

    Eclipse插件开发 第1篇到第4篇 开发基础 核心技术 高级进阶 综合实例 eclipse 插件安装方法

    本系列涵盖了从基础到高级的全方面教程,旨在帮助开发者掌握Eclipse插件开发的核心技术和实践应用。 首先,Eclipse插件开发的基础部分主要涉及以下知识点: 1. **理解OSGi框架**:Eclipse基于OSGi模块化系统构建,...

    Eclipse插件开发笔记—PDF—带目录

    《Eclipse插件开发》由浅入深、有重点、有针对性地介绍了Eclipse插件开发技术,全书分为4篇共24章。第一篇介绍Eclipse平台界面开发的基础知识,包括SWT控件的使用、界面布局、事件处理等内容;第二篇是插件开发核心...

    Eclipse插件开发学习笔记 第三四篇(26-28)+原代码.rar

    Eclipse插件开发 学习笔记 第一篇 开发基础(01-05).rar Eclipse插件开发 学习笔记 第一篇 开发基础(06-10).rar Eclipse插件开发 学习笔记 第二篇 核心技术(11-16).rar Eclipse插件开发 学习笔记 第二篇 核心技术(17-...

    eclipse插件开发2

    eclipse插件开发学习笔记第二部分,介绍SWT结构、常用组件

    eclipse 插件开发01

    本书第一篇介绍Eclipse平台界面开发的基础知识,包括SWT控件的使用、界面布局、事件处理等内容;第二篇是插件开发核心技术,主要介绍插件开发的核心知识要点,包括行为(Action)、视图(ViewPart)、编辑器(Editor...

    Eclipse插件开发学习笔记 第三四篇(22-25).rar

    Eclipse插件开发 学习笔记 第一篇 开发基础(01-05).rar Eclipse插件开发 学习笔记 第一篇 开发基础(06-10).rar Eclipse插件开发 学习笔记 第二篇 核心技术(11-16).rar Eclipse插件开发 学习笔记 第二篇 核心技术(17-...

    Eclipse插件开发 学习笔记 第一篇 开发基础(01-05).rar

    Eclipse插件开发 学习笔记 第一篇 开发基础(01-05).rar Eclipse插件开发 学习笔记 第一篇 开发基础(06-10).rar Eclipse插件开发 学习笔记 第二篇 核心技术(11-16).rar Eclipse插件开发 学习笔记 第二篇 核心技术(17-...

    Eclipse插件开发 学习笔记 第二篇 核心技术(11-16).rar

    Eclipse插件开发 学习笔记 第一篇 开发基础(01-05).rar Eclipse插件开发 学习笔记 第一篇 开发基础(06-10).rar Eclipse插件开发 学习笔记 第二篇 核心技术(11-16).rar Eclipse插件开发 学习笔记 第二篇 核心技术(17-...

    《Eclipse插件开发学习笔记》源码

    本书由浅入深、有重点、有针对性地介绍了Eclipse插件开发技术,全书分为4篇共24章。第一篇介绍Eclipse平台界面开发的基础知识,包括SWT控件的使用、界面布局、事件处理等内容;第二篇是插件开发核心技术,主要介绍...

    Eclipse插件开发学习笔记 第一篇 开发基础 (第一章到第八章)

    本书的主要内容是介绍Eclipse插件开发的相关知识和技巧,包括Eclipse的系统结构、SWT/JFace技术、插件开发方法、RCP开发方法以及其他一些相关的技术专题。本书覆盖了Eclipse平台技术的核心领域,是目前市场上讲述...

    Eclipse插件开发学习笔记(ch0-3)

    总的来说,这份学习资料将带你从Eclipse平台的基础概念出发,逐步深入到SWT和JFace的使用,通过实践掌握Eclipse插件开发的关键技术。无论你是希望提升开发效率,还是想为Eclipse社区贡献自己的插件,这套教程都将是...

    Eclipse插件开发学习笔记(第二篇 核心技术 9-13章)

    本书由浅入深、有重点、有针对性地介绍了Eclipse插件开发技术,全书分为4篇共24章。第一篇介绍Eclipse平台界面开发的基础知识,包括 SWT控件的使用、界面布局、事件处理等内容;第二篇是插件开发核心技术,主要介绍...

    eclipse插件开发学习笔记_教程2

    本书由浅入深、有重点、有针对性地介绍了Eclipse插件开发技术,全书分为4篇共24章。第一篇介绍Eclipse平台界面开发的基础知识,包括SWT控件的使用、界面布局、事件处理等内容;第二篇是插件开发核心技术,主要介绍...

    Eclipse插件开发+学习笔记(完整 清晰) part1

    本书由浅入深、有重点、有针对性地介绍了Eclipse插件开发技术,全书分为4篇共24章。第一篇介绍Eclipse平台界面开发的基础知识,包括SWT控件的使用、界面布局、事件处理等内容;第二篇是插件开发核心技术,主要介绍...

    Eclipse插件开发基础6-10

    本书由浅入深、有重点、有针对性地介绍了Eclipse插件开发技术,全书分为4篇共24章。第一篇介绍Eclipse平台界面开发的基础知识,包括 SWT控件的使用、界面布局、事件处理等内容;第二篇是插件开发核心技术,主要介绍...

    开发Eclipse插件之天气预报

    本篇将基于"开发Eclipse插件之天气预报"这个主题,深入探讨Eclipse插件开发的基本流程、涉及的技术点以及如何创建一个天气预报插件。 首先,Eclipse插件开发是基于Eclipse的Plug-in Development Environment(PDE)...

    Eclipse插件开发 学习笔记 第一篇 开发基础(06-10).rar

    Eclipse插件开发 学习笔记 第一篇 开发基础(01-05).rar Eclipse插件开发 学习笔记 第一篇 开发基础(06-10).rar Eclipse插件开发 学习笔记 第二篇 核心技术(11-16).rar Eclipse插件开发 学习笔记 第二篇 核心技术(17-...

    在eclipse下搭建swing/awt/swt开发环境的方法和插件

    本篇文章将详细介绍如何在Eclipse集成开发环境中(IDE)搭建这些框架的开发环境,以及可以使用的相关插件。 首先,让我们从AWT(Abstract Window Toolkit)开始。AWT是Java标准库中的基础GUI组件集合,它提供了窗口...

    Eclipse+插件开发学习笔记

    第一篇介绍Eclipse平台界面开发的基础知识,包括SWT控件的使用、界面布局、事件处理等内容;第二篇是插件开发核心技术,主要介绍插件开发的核心知识要点,包括行为(Action)、视图(ViewPart)、编辑器(Editor)、...

Global site tag (gtag.js) - Google Analytics