如何在不禁用SWT中的最小化,最大化和关闭按钮的情况下禁用shell

时间:2016-03-09 16:20:18

标签: java eclipse swt

我正在尝试使用

在SWT中禁用shell
sell.setEnabled(false);

这工作正常,我想阻止用户做动作,但同时我想让他最小化shell。问题是setEnabled(false)将禁用整个shell。

你有没有想过这个?

2 个答案:

答案 0 :(得分:0)

我想你想要禁用shell的内容。那你为什么不在shell中添加一个容器(Composite)作为主要内容,并根据需要禁用/启用它?这不会影响shell,因此,最小化按钮将继续工作。

final Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
final Composite composite = new Composite(shell, SWT.NONE);
composite.setEnabled(false);

答案 1 :(得分:0)

不要禁用Shell本身,而是禁用它包含的控件。像这样:

Control[] children = shell.getChildren();
for( Control control : children ) {
  control.setEnabled( false );
}