SWT一个入门问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SWT一个入门问题相关的知识,希望对你有一定的参考价值。

if(!display.readAndDispatch())display.sleep();
中这个readAndDispatch方法是什么意思啊,Dispatch英文意思是什么呢?
声明Shell 时,要Shell s=new Shell(display);Shell和Display是什么关系啊。!!~!!

在SWT中要想创建一个窗口,至少要用到两个类:Display和Shell。Display负责处理所有SWT窗口小部件和操作系统之间的交互,比如我们可以通过Display的方法来查询操作系统:哪个控件获取了焦点,当前打开了哪些窗口等等。简单的说,它的功能在于实现了窗口的管理。与Display不同,Shell的实例为我们提供了真正可见的窗口,该窗口一般作为主窗口使用,我们可以在此放置其它窗口部件。需要注意的是,这些窗口是由桌面(MS Windows)或窗口管理程序(Unix或Linux系统)来管理的。Shell的实例可以直接从Display创建,也可以从父代Shell创建。

Shell需要响应一些事件,其中某些是由操作系统引起的,另外一些是由用户引起的,如用户点击了最大化按钮以及关闭Shell创建的窗口等。事件循环一直侦听这些事件,然后将这些事件转发给相应的处理程序,这是由Display类的readAndDispatch()方法来完成的。这意味着,你创建的每个Shell必须具有它自己的事件循环。如果创建的Shell没有事件循环,或者事件循环失效的话,它马上就会被除去。一般情况下,事件循环会一直执行下去,直到Shell类的isDisposed( )方法返回值为true(即窗口已被用户关闭)为止。
参考技术A 用xlib做个窗口通过printf("b2\n");
wm_hints->flags |= InputHint;
printf("b3\n");
wm_hints->input = False;
printf("b4\n");
XSetWMHints(display, parent, wm_hints);
可以达到失去焦点效果。
参考技术B Dispatch...可以解释为 调度.派遣

display只是一个对象,

而shell是对于display的操作扩展。

以上是关于SWT一个入门问题的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse从入门到精通

swt是啥

SWT 独立滚动条小部件

插件项目的 SWT 或 Swing

多个 swt 按钮,相同的侦听器 [重复]

SWT 模态对话框不是模态的