ProgressMonitorDialog构造函数中是否有错误?

时间:2015-02-20 16:25:56

标签: java swt jface

当我去创建ProgressMonitorDialog的新实例时,它会忽略内部shell样式和setBlockOnOpen。我甚至不确定如何/为什么会发生这种情况。标题栏中的关闭按钮不起作用(我认为这是一个错误),但取消按钮工作正常。是否有其他人遇到过这个问题,或者是什么奇怪的事情导致它表现不同?

我的代码:

ProgressMonitorDialog pmd = new ProgressMonitorDialog(shell);
pmd.run(true, true, new MyOperation());

构造函数的源代码:

public ProgressMonitorDialog(Shell parent) {
    super(parent);
    // no close button on the shell style
    if (isResizable()) {
        setShellStyle(getDefaultOrientation() | SWT.BORDER | SWT.TITLE
                | SWT.APPLICATION_MODAL | SWT.RESIZE | SWT.MAX);
    } else {
        setShellStyle(getDefaultOrientation() | SWT.BORDER | SWT.TITLE
                | SWT.APPLICATION_MODAL);
    }
    setBlockOnOpen(false);
}

我在标题栏中看到的内容:

pic http://i60.tinypic.com/28kh7ip.png

1 个答案:

答案 0 :(得分:1)

这几乎肯定取决于平台(Mac,Linux,Windows ......)。并非所有平台都支持没有关闭按钮,可以做的最好就是禁用它。