FirstBlog

这是第一个swt程序。其中感觉应当注意这几个问题:

 1 package test;
 2 import org.eclipse.swt.SWT;
 3 import org.eclipse.swt.widgets.Display;
 4 import org.eclipse.swt.widgets.Shell;
 5 import org.eclipse.swt.widgets.Text;
 6   public class Hello { 
 7        public static void main(String[] args) { 
 8          Display display = new Display(); 
 9         Shell shell = new Shell(display); 
10         Text helloText = new Text(shell, SWT.CENTER);
11         shell.setText("HELLO");
12         helloText.setText("Hello,World!"); 
13         shell.setLocation(300, 300); 
14         shell.setSize(300, 300);
15         helloText.pack();
16        shell.pack();        //窗口内容紧缩
17         shell.open();        //窗口打开
18        while (!shell.isDisposed()) { 
19            if (!display.readAndDispatch()) { 
20                display.sleep(); 
21            } 
22          } 
23         display.dispose(); 
24     } 
25  } 

 

我们知道: Display是一个“幕后工作者”,它为swt/JFace提供支持,但是你并不能够从某个用户界面中看到它的影子。 每个swt程序在最开始都必须创建一个Display对象。Display对象起什么作用呢?它是swt与操作系统沟通的一座桥梁。它负责swt和操作系统之间的通信。它将swt/JFace的各种调用转化为系统的底层调用,控制操作系统为swt分配的资源。同时我们也可以通过Display对象得到操作系统的一些信息。 一个Shell对象就是一个窗口。你可以在上面放置各种部件创建丰富的图形界面。 我们都知道窗口有很多种,比如窗口有可以调整大小的,有不可以的,有的没有最大化最小化按钮。这些窗体的特征在swt中被成为风格(style)。一个窗体的风格可以用一个整数进行定义。这些风格的定义在org.eclipse.swt.SWT中。 Shell对象可用的风格包括:BORDER, CLOSE, MIN, MAX, NO_TRIM, RESIZE, TITLE , PLICATION_MODAL, MODELESS, PRIMARY_MODAL,S YSTEM_MODAL 我们可以在一个Shell的构造函数中定义它的风格,比如在前面的Hello,world!程序中,我们可以这样定义Shell。 Shell shell = new Shell(display,SWT.CLOSE | SWT.SYSTEM_MODAL); 最后得到的窗体没有最大化和最小化按钮,并且大小是固定不变的。 因为swt运行于各种平台之上,而这些平台上的窗口管理器千差万别,所以所有这些风格都不是肯定可以实现的。在swt的javadoc中,这被称为暗示(hints)。 Shell对象的方法大都和GUI有关,比如setEnabled()设定了窗体是否能够和用户进行交互,setVisble()设定了窗体是否可见,setActive()将窗体设为当前的活动窗口。 我们可以用open()方法打开一个窗体,close()方法关闭一个窗体。

1.注意包的引入正确。 2.其中上面也说过open()和pack()两个函数的使用。第一次我们会想变换窗口的大小,但由于我们上面设置的是shell.pack();所以不能弹出大窗口;pack()函数将窗口来紧缩,我们可以去掉它,同样helloText也可以调用这个方法来设置文字的紧缩程度 3.我们通过 while (!shell.isDisposed()) {            if (!display.readAndDispatch()) {                display.sleep();            }          }         display.dispose(); 来判断窗口是否关闭。 准备写写jface,开始在这方面学习。这是第一次写博客,经验不足。希望高手指导交流。

 

 

posted @ 2013-05-21 18:18  句号。  阅读(134)  评论(0)    收藏  举报