`

SWT + JFace 入门

阅读更多
关于SWT和JFace联合开发Java的GUI应用程序,强烈推荐一本书:《The definitive guide to SWT and JFace》。由浅入深的将你带进SWT和JFace的开发中。
1. 需要的Jar包 。如下图:
[img]

[/img]


附件中有所需要的4个jar包。

2. dll文件进行关联。
想在Windows下运行swt和jface的应用程序,还需要让程序知道本地库文件,让程序知道如何调用本地资源来生成图形化界面。我的做法是:
找到相对应的dll文件,放到项目的某个目录中,然后在VM中设置。如下:







附件中有所需要的lib包。
3. 第一个HelloWorld程序。如下:
package com.swtjface;

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

public class HelloWorld {
	public static void main(String[] args) {
		Display display = new Display();
		Shell shell = new Shell(display);
		
		Text helloText = new Text(shell, SWT.CENTER);
		helloText.setText("Hello,World!");
		helloText.pack();
		
		shell.pack();
		shell.open();
		while (!shell.isDisposed()) {
			if (!display.readAndDispatch()) {
				display.sleep();
			}
		}
		display.dispose();
	}
}


结果如下:




这段程序虽然很简单,但是它反映了我们书写swt程序的步骤,这些步骤是:
    (1) 创建一个Display对象
    (2) 创建一个或者多个Shell对象,你可以认为Shell代表了程序的窗口。
    (3) 在Shell内创建各种部件(widget)
    (4) 对各个部件进行初始化(外观,状态等),同时为各种部件的事件创建监听器(listener)
    (5) 调用Shell对象的open()方法以显示窗体
    (6) 各种事件进行监听并处理,直到程序发出退出消息
    (7) 调用Display对象的dispose()方法以结束程序。
4.Display 和 Shell 是两个非常重要的基本类。

Display与操作系统沟通的桥梁:
我们在前面说过,每个swt程序在最开始都必须创建一个Display对象。Display对象起什么作用呢?它是swt与操作系统沟通的一座桥梁。它负责swt和操作系统之间的通信。它将swt/JFace的各种调用转化为系统的底层调用,控制操作系统为swt分配的资源。同时我们也可以通过Display对象得到操作系统的一些信息。
Display是一个“幕后工作者”,它为swt/JFace提供支持,但是你并不能够从某个用户界面中看到它的影子。
在前面的Hello,world!程序中,我们可以看到构建一个Display对象是和普通的Java对象一样通过构造函数实现的。它为实现图形界面准备了最基本的条件。而在程序结束时我们必须显式地调用dispose() 方法来释放程序运行中所获得的资源。一般来说,一个程序只需要一个Display对象,当然没有人禁止你创建多个Display对象。

Shell:窗口
一个Shell对象就是一个窗口。你可以在上面放置各种部件创建丰富的图形界面。
我们都知道窗口有很多种,比如窗口有可以调整大小的,有不可以的,有的没有最大化最小化按钮。这些窗体的特征在swt中被成为风格(style)。一个窗体的风格可以用一个整数进行定义。这些风格的定义在org.eclipse.swt.SWT中。
Shell对象可用的风格包括:BORDER, CLOSE, MIN, MAX, NO_TRIM, RESIZE, TITLE , PLICATION_MODAL, MODELESS, PRIMARY_MODAL,S YSTEM_MODAL
5.
6.
7.
8.
9.
10.
  • 大小: 12.3 KB
  • 大小: 30.9 KB
  • 大小: 8 KB
  • lib.rar (101.8 KB)
  • 下载次数: 79
  • 大小: 3.3 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics