理解SWT/JFace中的Display与Shell

Display用来连接操作系统:
需要在程序的最开始创建

Display display=new Display();

在程序结束后要记得销毁display

display.dispose();

Shell可以简单理解为一个shell就是一个窗口:

Shell shell=new Shell(display,SWT.CLOSE);

其中SWT.CLOSE的位置为风格,可不选也可多选,用“|”分隔开
Shell shell=new Shell();也不会报错,代码内部会为其添加display
在这里插入图片描述

打开窗口:

 shell.open();

有一个问题在于打开窗口后会紧接着执行display.dispose();,display被销毁导致窗口只是一闪而过甚至并不出现,那就需要下方代码:

while ( !shell.isDisposed()) {
            if (!display.readAndDispatch()) {  
                display.sleep();              
            }
}

保证程序处于执行状态,关闭窗口才结束程序

你可能感兴趣的:(日常记录)