JFace的Hello,world!

我们仍然是从一个最简单的Hello,world!开始介绍JFace。为了更形象一些,首先把程序列出来:

 1 
 2  public   class  HelloJface extends Window {
 3 
 4       public  HelloJface(Shell arg0) {
 5          super(arg0);
 6      }
 7        @Override
 8       protected  Control createContents(Composite parent) {
 9          Text text  =   new  Text(parent, SWT.NONE);
10          text.setText( " Hello,world! " );
11           return  parent;
12 
13      }
14       /* *
15       * @param args
16        */
17       public   static   void  main(String[] args) {
18 
19          HelloJface demo  =   new  HelloJface( null );
20          demo.setBlockOnOpen( true );
21          demo.open();
22          Display.getCurrent().dispose();
23 
24      }
25  }
26 

代码段12

首先我们从这段代码来看一下使用JFace和单纯地使用swt写程序有什么不一样:

swt程序中,我们需要自己创建Display,自己创建Shell,但是在这里,我们只需要:

创建一个继承自Windoworg.eclipse.jface.window.Window)的类

在这个类的createContents方法中为窗口添加部件

将这个对象的blockOnOpen属性设定为true,这个属性的含义就和它的名字一样,窗口会一直保持打开的状态(接收各种事件)直到被关闭。

调用这个对象的open方法即打开了窗口

由于设定了blockOnOpen,窗口会保持接受各种事件,知道用户(或者程序)关闭了它。

在关闭以后,程序继续向下运行,我们需要将资源释放掉,所以有了这样一句话:

Display.getCurrent().dispose();

其中Display.getCurrent()得到了程序的display对象,并进而调用dispost()方法释放了各种资源。

其实这也是我们写一个JFace程序一般的步骤,当然我们可能还会添加事件处理之类,但是大体上都是这样的。

因为这个程序运行的结果其实和我们以前swtHello,world!是一样的,所以在这里我也不再贴图了。大家可以自己运行看一下。

你可能感兴趣的:(JFace的Hello,world!)