`

SWT/JFACE/RCP 入门三:SWT四个模块

阅读更多

本节开始大多都是概念知识,如果要api的demo请自行上github上获取。

 

所谓的SWT四个模块,其实只是我为了分析和讲解swt而自己分的概念,在SWT的文档中,没有这样的说法,其主要目的是为了方便概念的引申,去更加细腻的去区分SWT的大模块。

 

 

1.widget控件



 

Widget类:是所有控件的基类,该类实现了很多基础功能,比如在上一节讲的checkWidget就是在这里实现的,还有很多常用功能,比如setData,addListener,removeListener,更重要的是,这个类有很多本地方法,用来进行和os的交互,比如控件的生成和事件的传递。源码其实并不是很深,但里面有很多本地方法,需要查看swt的dll文件,而且对工作的帮助并不是很大,所以点到为止

 

composite容器类型:关于容器的概念,在上一节已经讲解过了,这里主要讲解下常用实现类的功能

CCombo,Combo:下拉菜单(可实现的界面效果一样,但CCombo的功能稍微多一点点)

CoolBar:可移动的工具栏

ToolBar:工具栏

CTabFolder,TabFolder:标签选择器(可实现的界面效果一样,但CTabFolder的功能稍微多一点点)

ScrolledComposite:有滚动条的面板

Table:表格

Tree:树形列表

ExpandBar:可展开,收缩的菜单栏

Browser:浏览器控件,可以用browser做成桌面软件内嵌H5的方式。

SashForm:可设置比例,且在容器范围内可自由调大子控件大小的容器类

Group:左上角有个文本的容器类

 

Item类型:条目,是用于组成一些现成容器的元素,如tabItem就是用来组成tabFolder,tableItem就是为了组成table,ToolItem组成toolBar,item的父容器都是固定的,而且从名字看就有迹可循



 

 

基础控件类:就是功能十分简单的控件

Button:按钮

Label:静态文本框

Link:超链接文本框

Text:文本框

List:列表菜单

ProgressBar:进度条

 

控件中一些常用的api,以shell为例子:

shell.setSize(300, 400);                                  //设置窗体尺寸    					
shell.setText("hello 讯讯");                              //设置窗体标题    					
shell.setBackground(new Color(null, 0, 0, 0));            //设置背景颜色,为黑色    			
shell.setData("key", "value");                            //设置一个缓存数据,内置一个hashMap	
shell.setToolTipText("this is tip");                      //设置悬浮提示    					
shell.setEnabled(true);                                   //设置是否可点击   					
shell.setVisible(true);                                   //设置可显示 						
shell.setLayoutData(new GridData());                      //作为子控件时,设置布局数据 		
shell.setLayout(new FillLayout());                        //设置充满式布    					
shell.setFont(new Font(null, "微软雅黑", 12,SWT.BOLD));   //设置文字风格    					
shell.setMenu(new Menu(shell));                           //设置菜单  	

 

 

2.Layout布局



 

这个概念对不熟悉界面编程的人是比较陌生的概念,简单的说,不同的layout对应着不同的布局算法,举个例子,GridLayout gl = new GridLayout(3, true);表示新建一个网格布局,使用了此布局的面板控件,将水平分成均等的3份,且自己大小的size的变化,也会影响到内部子控件的大小。特别需要掌握好GridLayout和GridData两个类,API说明请查看github

 

Layout中的注意事项:

A.如果没有特殊的设置,一般情况下,子控件的大小是会因为父控件的大小产生变化。但到了不能再小的时候,子控件将不会进行缩放,以保证区域显示元素的完整,当然很多时候,控件也是需要设置特定的size

B.子控件的坐标是相对于父控件而言的,而并不是相对于整个屏幕的,如果需要转换,需要调用.toDisplay(0, 0)的API进行转换。

C.如果,中途改变了layout,又或者修改了子控件的大小,或者数量,一定要调用composite中的layout()

 

 

 

3.Listener事件

 



 

事件机制其实和一般的语言的事件都是一样的,监听之后进行反应的处理。swt事件的实现是由widget进行对os的调用,但是在control层,也实现了很多通用的事件类型。比如说,鼠标事件,键盘事件。所以,并不是说,你通过addXXXlistener找不到就代表没这个事件,addXXXListener只是一些通用的才有这种写法。此时可以通过addListener的api尝试。

 

 

4.系统Display



 

Display的常用API:

Display.getDefault().asyncExec(runnable);//ui异步线程更新,不会阻塞,常用
Display.getDefault().syncExec(runnable);//ui线程同步执行,会阻塞现行的ui线程
Display.getDefault().getBounds();//获取显示器区域,
Display.getDefault().getActiveShell();//获取当前活动的shell
Display.getDefault().getShells();//获取shell数组
Display.getDefault().getFocusControl();//获取焦点控件
Display.getDefault().getCursorControl();//获取光标控件

 

其实关于display的概念,在上一节已经讲得差不多了,就是一个运行环境+系统桥梁+ui线程。

 

 

下一节,主要讲Jface的概念。

 

 

 

SWT部分在这里已经讲完,基本是理清概念,还是那句,如果需要详细的api的讲解,可以查看电子书,因为在以前的入门经验中,我仔细敲了很多代码,但并不知道我敲的是什么,而且很多的类和api,在实际工作中,从来没用到过。而在我司培训到工作的流程中,并不可能有这样的时间给你慢慢适应,先有一个总体的概念是十分重要的,这是快速入手的基础,而不是一上来就告诉你代码该怎么写,一锅炖。然后在实际的工作中,积累和运用。多写,但在写的基础上,一定要把只是归类到自己的知识体系中。这些PPT都是我自己的工作经验和知识运用做出来的,虽然并不是十分的严谨,但我觉得能让人了解事实的本质即可,不想抠太多的细节。

 

 

===========================================================

我会在github上将控件的demo代码逐一补充,有需要的同学请标个星,将不断更新DEMO。技术讨论:5222041

https://github.com/JavaRui/com.eshinetech.rcp.training.git

demo将持续更新。需要群讨论,可以到第一节查看前言。

如果想查看各种控件的使用,可以下载电子书《Eclipse_Swt_Jface_核心应用》说是核心,其实都是些基础的入门代码。

如果对知识点有不同意见,请留言

文章列表

 

 

http://1299020954.iteye.com/

===========================================================

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 大小: 284.1 KB
  • 大小: 297.3 KB
  • 大小: 235.2 KB
  • 大小: 226.5 KB
  • 大小: 230.4 KB
  • 大小: 235.1 KB
分享到:
评论

相关推荐

    SWT/JFace专题 --- SWT/JFace概述

    在"SWT/JFace专题 --- SWT/JFace概述"中,可能涉及以下知识点: 1. SWT控件:包括Button、Text、Table、Tree、Composite等基本和复杂的控件,以及如何使用它们构建用户界面。 2. JFace数据绑定:讲解如何使用...

    swt/jface.jar

    标题中的"swt/jface.jar"是一个关键组件,它在Java开发环境中用于构建用户界面。SWT(Standard Widget Toolkit)是IBM开发的一个开源GUI库,它提供了与原生操作系统更紧密集成的图形用户界面控件。JFace是建立在SWT...

    SWT/Jface API 3.4

    在 SWT/Jface API 3.4 版本中,我们关注以下几个重要的知识点: 1. **SWT 基础**:SWT 是一个跨平台的 GUI 工具包,它通过直接调用操作系统原生的 API 来创建用户界面。这使得 SWT 创建的界面与操作系统风格保持...

    SWT/JFACE客户端登录窗口例子

    在这个“SWT/JFACE 客户端登录窗口例子”中,我们可以预期会看到如何使用这两个库来创建一个基本的登录窗口。通常,这样的窗口会包含用户名和密码输入框,以及登录、取消等按钮。以下是一些可能涉及的知识点: 1. *...

    Eclipse SWT/JFace 核心应用光盘源码

    Eclipse SWT(Standard Widget Toolkit)和JFace是Java开发中用于构建图形用户界面(GUI)的库,尤其在开发Eclipse插件和RCP(Rich Client Platform)应用程序时非常重要。这两个库提供了丰富的组件和框架,使得...

    eclipse swt/jface核心应用源码

    Eclipse SWT/JFace是Eclipse框架中的两个关键组件,它们为构建用户界面提供了强大的支持。SWT(Standard Widget Toolkit)是Eclipse的本机GUI库,而JFace是基于SWT构建的更高层次的抽象层,它简化了UI开发过程。 ...

    swt/jface in action +中文版+英文版+源码 下载

    本文将深入探讨这两个技术,并结合《SWT/JFace in Action》这本书的相关内容,提供一个全面的知识框架。 SWT是Java的GUI工具包,它提供了原生的控件,使得Java应用程序的用户界面可以与操作系统深度融合,从而获得...

    Eclipse SWT JFace核心应用_pdf_含标签_目录

    《Eclipse SWT/Jface核心应用》全面介绍了SWT、JFace和RCP的相关知识。全书共分5篇,第1篇介绍了SWT产生的背景以及SWT的一些基本概念和基础知识。第2篇介绍了SWT基本控件的使用,以及事件处理、布局等SWT基本知识的...

    SWT/JFace学习文档

    SWT/JFace是Java开发图形用户界面(GUI)的两个重要库,由Eclipse基金会维护。它们被广泛用于构建桌面应用程序,尤其是与Eclipse IDE相关的项目。本学习文档旨在介绍SWT/JFace的基础知识,帮助开发者更好地理解和...

    swt/jface实例开发

    【SWT/JFace实例开发】是一份针对Java GUI编程的学习资源,主要聚焦于SWT(Standard Widget Toolkit)和JFace这两个强大的图形用户界面库。SWT是Eclipse项目的一部分,它提供了一套与操作系统直接交互的原生控件,...

    Eclipse swt/jface核心应用源码(带视频)

    在"eclipse swt/jface核心应用源代码"中,我们可以期待看到如何使用SWT和JFace来创建Eclipse插件或RCP应用的实际示例。这些源代码通常会涵盖以下关键知识点: 1. **组件创建**:如何使用SWT类创建基本的UI元素,如`...

    Eclipse SWT/JFace 书中 全部实例

    JFace则建立在SWT之上,为SWT提供了一个更高层次的抽象。它简化了UI的构建,通过模型-视图-控制器(MVC)模式来组织代码,使界面设计更为清晰,同时提供了数据绑定、对话框、视图管理等高级功能。JFace的目的是减少...

    Eclipse SWT/JFace 核心应用

    在Eclipse SWT/JFace核心应用中,以下几个关键知识点不容忽视: 1. **组件库**:SWT提供了一整套原生GUI组件,如Button、Text、Table等,开发者可以根据需要自由组合和配置。 2. **事件处理**:SWT通过事件监听...

    Eclipse SWT/Jface核心应用(1)

    《Eclipse SWT/Jface核心应用》全面介绍了SWT、JFace和RCP的相关知识。全书共分5篇,第1篇介绍了SWT产生的背景以及SWT的一些基本概念和基础知识。第2篇介绍了SWT基本控件的使用,以及事件处理、布局等SWT基本知识的...

    swt/jface api帮助文档

    SWT (Standard Widget Toolkit) 和 JFace 是两个与Java GUI编程密切相关的库,它们是Eclipse项目的一部分。本文将深入探讨这两个库的核心概念、功能以及API的使用。 SWT是Java的一个GUI(图形用户界面)工具包,它...

    swt/Jface中文教程

    ### SWT/JFace中文教程知识点详解 #### 1.1 SWT/JFace概览 - **SWT与JFace的目的**:SWT(Standard Widget Toolkit)和JFace是Eclipse平台提供的两个核心工具包,用于构建高性能的图形用户界面(GUI)。SWT主要...

    eclipse swt/jface核心应用

    Eclipse SWT(Standard Widget Toolkit)和JFace是用于构建Eclipse插件和RCP(Rich Client Platform)应用程序的重要工具包。这两个库都是Eclipse IDE的一部分,提供了与操作系统底层交互的能力,使得开发者可以创建...

    Eclipse SWT/Jface核心应用(2)

    《Eclipse SWT/Jface核心应用》全面介绍了SWT、JFace和RCP的相关知识。全书共分5篇,第1篇介绍了SWT产生的背景以及SWT的一些基本概念和基础知识。第2篇介绍了SWT基本控件的使用,以及事件处理、布局等SWT基本知识的...

    Ecilpse的SWT/JFace例子

    6. ** SWT/JFace与Eclipse RCP**:如果例子深入到Eclipse Rich Client Platform (RCP)的开发,你还将学习如何构建完整的桌面应用程序,包括插件系统、工作台管理、透视图和编辑器等。 7. **SWT/AWT/Swing的比较**:...

    SWT/JFace 3.5 API (CHM)

    6. 学习资源:SWT/JFace 3.5 API文档不仅是开发过程中不可或缺的参考,还可以配合Eclipse插件如Eclipse Help Viewer,进一步提升阅读体验。同时,开发者社区提供了丰富的教程、示例代码和论坛讨论,为学习和解决实际...

Global site tag (gtag.js) - Google Analytics