SWT:在运行时更改Shell的样式

时间:2017-09-27 20:48:47

标签: java swt

有没有办法在运行时更改Shell的样式?

我希望有一个不可调整大小的shell,但是当它全屏显示时,它能够用它的内容填充整个屏幕。有没有办法实现这个目标?

换句话说,当Shell不可调整大小并且它有例如背景图像时,我会全屏显示: enter image description here

另一方面,当Shell可调整大小并且我全屏显示时,我得到了这个: enter image description here

所以想获得第二个效果但是没有可调整大小的Shell。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

根据Stefan的评论,我能够听到调整大小事件并检查全屏标志,在全屏显示时将外壳尺寸适当调整为显示器大小当没有时,正常大小。这里的代码就是诀窍:

shell.addListener(SWT.Resize, new Listener() {
            @Override
            public void handleEvent(Event arg0) {
                if (shell.getFullScreen()) {
                    Rectangle r = getMonitorSize(shell);
                    shell.setSize(r.width, r.height);
                    shell.redraw();
                } else {
                    shell.setSize(WINDOW_WIDTH, WINDOW_HEIGHT);
                    shell.redraw();
                }
            }
        });