JFace 对话框始终位于顶部且无模式

问题描述 投票:0回答:3

我创建了一个 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);
    }

}
java eclipse-plugin swt eclipse-rcp jface
3个回答
3
投票

使用

null
作为父 Shell,以便该对话框不是您正在最小化的窗口的子窗口。


1
投票

我没有足够的声誉来发表评论。因此将其发布为答案。 这里面的parentShell 是什么?这决定了对话框的生命和行为。创建一个新的 shell 或将 null 作为 shell。这应该可以消除与工作台的束缚。 另一个问题:为什么要尝试这个?


0
投票

上述答案的一些工作观察:

在对话框构造函数中使用

setShellStyle(SWT.CLOSE | SWT.TITLE |SWT.MODELESS |SWT.ON_TOP);
,子窗口会在父窗口之上弹出,但我们也可以不受任何限制地访问父窗口。

按照

null
的建议使用
greg-449
作为父外壳,子窗口在顶部打开,父窗口受到限制。

我们可以根据我们的要求使用这两个选项。

© www.soinside.com 2019 - 2024. All rights reserved.