当我创建一个ProgressMonitorDialog的新实例时,它将忽略内部外壳样式和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);
}
我在标题栏中看到的内容:
几乎可以肯定这取决于平台(Mac,Linux,Windows ...)。并非所有平台都支持没有关闭按钮,最好的办法是禁用它。