我创建了一个 JFace 无模式对话框并尝试使用以下选项设置 shell 样式
setShellStyle(SWT.CLOSE | SWT.TITLE |SWT.MODELESS |SWT.ON_TOP);
我希望此对话框始终位于顶部,但是当我最小化 Eclipse 工作台时,该对话框会最小化。
我是否遗漏了 shell 样式位的某些内容,或者这是预期的行为?
即使我们最小化 Eclipse 应用程序,如何制作始终位于顶部的对话框?
public class Capture extends Dialog {
public Capture(Shell parentShell) {
super(parentShell);
setShellStyle(SWT.CLOSE | SWT.TITLE |SWT.MODELESS |SWT.ON_TOP);
}
}
使用
null
作为父 Shell,以便该对话框不是您正在最小化的窗口的子窗口。
我没有足够的声誉来发表评论。因此将其发布为答案。 这里面的parentShell 是什么?这决定了对话框的生命和行为。创建一个新的 shell 或将 null 作为 shell。这应该可以消除与工作台的束缚。 另一个问题:为什么要尝试这个?
上述答案的一些工作观察:
在对话框构造函数中使用
setShellStyle(SWT.CLOSE | SWT.TITLE |SWT.MODELESS |SWT.ON_TOP);
,子窗口会在父窗口之上弹出,但我们也可以不受任何限制地访问父窗口。
按照
null
的建议使用greg-449
作为父外壳,子窗口在顶部打开,父窗口受到限制。
我们可以根据我们的要求使用这两个选项。