SWT/JFace学习总结 --- 发表一篇以前写得项目开发总结

SWT/JFace学习总结

一. SWT/JFace的基本介绍

1.1 Face与其他图形界面设计工具的比较

Java图形界面实现方式有很多,比如AWT、SWING和SWT等。AWT和SWING不论是在速度上还是美观上都有很大的不足;对于比较庞大而复杂的系统,用AWT或SWING相很难实现,因为运行的速度会相当的慢。SWT直接使用操作系统提供的本地图形接口,具备本地化的Look & Feel,效率高且美观。因此,本项目选择SWT作为图形界面开发基础工具包。

图2-1为SWT原理图,图2-2为JFace原理图

图2-1

                  图2-2

SWT把Win32的API简单的包装了一下,系统在SWT这一层调用的方法、传递的参数被原封不动的代理到了Win32层。这是SWT的核心思想。SWT有一个很重要的设计原则,那就是,SWT的API一对一的封装OS的API,完全忠实于操作系统的API实现的行为,如果有bug,那也是OS的bug,它不会尝试去“纠正”操作系统,因为那样会潜在的破坏本地化的一些行为。忠实于OS也使得调用者不必但心自己的SWT程序会跟OS的本地GUI有不一致的地方。因此,SWT拥有标准的与操作系统相同的外观,几乎没有人能看出你的程序是用Java写出来的,更为重要的是,其程序运行的效率可以和VC++写出的程序向媲美,而且开发的效率也不在AWT/SWING之下。

1.2 如何创建简单的SWT/JFace程序

1.2.1 如何在Eclipse中建立一个SWT/JFace工程

依次File→New→other 就会看到

然后按向导往下操作即可新建一个SWT/JFace工程,该工程跟其他的Jave工程没有多大的区别

1.2.2 一个简单的HelloWorld小例子

public class HelloWorld{

public static void main(String[] args){

Display display=new Display();

Shell shell=new Shell(display,SWT.V_SCROLL|SWT.SHELL_TRIM);

shell.setText("This is my label");

shell.setBounds(100,100,500,200);

shell.setLayout(new FillLayout());

//Color red=new Color(display,255,0,0);

Label label1=new Label(shell,SWT.CENTER);

label1.setText("Hello word");

label1.setLocation(100,100);

label1.setBackground(new Color(display,0,200,0));

new Label(shell,SWT.CENTER).setText("software college of neu");

shell.open();

while(!shell.isDisposed()){

if(!display.readAndDispatch())

display.sleep();

}

display.dispose();

}

}

程序的一些解释:

1. Display类:该类是SWT的基础类,它负责应用程序和本地操作系统之间建立交互。Display类是从Decive继承而来。

Display继承关系图

2. Shell类:该类是显示在桌面上的窗口,可以使顶级窗口(Top Level Shells)或者是对话框窗口(Secondary Or Dialog Shells)

3. 设置消息循环进行监听,以便监听到界面的操作:

while(!shell.isDisposed()){

if(!display.readAndDispatch())

display.sleep();

}

二. SWT基础

2.1 SWT基本组件

2.1.1关于按钮Button

类型

特点

创建代码举例

普通

呈突出状

Button bt = new Button(shell,SWT.PUSH)

切换

单击后保持按下状态,再次单击时恢复。

Button bt = new Button(shell,SWT.TOGGLE)

箭头

按钮带有小箭头

Button bt = new Button(shell , SWT.ARROW|SWT.UP)向上的箭头

单选

同一组只有一个选中

Group group = new Group(shell , SWT.SHADOW_ETCHED_OUT)

group.setLayout(new FillLayout(SWT.VERTICAL)

Button bt1 = new Button(group , SWT.RADIO|SWT.LEFT)

Button bt2 = new Button(group, SWT.RADIO|SWT.RIGHT)

bt1.setSelection(true)表示选定该按钮

多选

同时可选几个按钮

Group group = new Group(shell , SWT.SHADOW_ETCHED_OUT)

group.setLayout(new FillLayout(SWT.VERTICAL)

Button bt1 = new Button(group , SWT.CHECK|SWT.LEFT)

Button bt2 = newButton(group, SWT.CHECK|SWT.RIGHT)

bt1.setSelection(true)表示选定该按钮

2.1.2文本框Text

文本框是一个比较常用的组件,文本狂本身就支持复制,粘贴,删除等基本的操作。因此这些常用的基本操作不用我们再去设计。

1.文本框的比较特殊的样式

样式常量

描述

SWT.READ_ONLY

只读文本框

SWT.PASSWORD

输入密码框

SWT.MULTI

可以输入多行的文本框

SWT.WRAP

可以输入多行并且自动切换

SWT.H_SCROLL

带水平滚动条的文本框

2.关于文本框的几个操作的方法

设置文字的方向

setOrientation(int orientation)

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值