当我去创建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);
}
我在标题栏中看到的内容:
答案 0 :(得分:1)
这几乎肯定取决于平台(Mac,Linux,Windows ......)。并非所有平台都支持没有关闭按钮,可以做的最好就是禁用它。