我想禁用按钮最大化/最小化,下面我发布图片来解释
这是我的代码:
public class ProjectWizardPageOne extends WizardPage {
private String platform;
public ProjectWizardPageOne(String title) {
super(title);
this.setTitle(title);
this.setMessage("Configure Project Name and Location");
}
@Override
public void createControl(Composite parent) {
Composite container = new Composite(parent,SWT.NONE);
setPageComplete(false);
setControl(container);
Canvas leftPanel = new Canvas(container, SWT.NONE);
leftPanel.setBackgroundImage(new Image(leftPanel.getDisplay(), this
.getClass().getClassLoader()
.getResourceAsStream("/icons/mypicture.png")));
leftPanel.setBounds(0, 0, 183, 282);
Composite rightContainer = new Composite(container, SWT.NONE);
rightContainer.setBackground(new Color(null, 255, 255, 255));
rightContainer.setBounds(181, 0, 399, 282);
}
public String getPlatform() {
return platform;
}
public void setPlatform(String platform) {
this.platform = platform;
}
}
我试图像这样的“container.getShell();”获得Composite的Shell。 但我不明白如何设置这些参数“SWT.SHELL_TRIM | SWT.TOOL”! 感谢
答案 0 :(得分:2)
控制Window
/ Shell
不是WizardPage
的责任,它不能做到这一点。它是WizardDialog
或创建它的代码的责任。事实上,无法保证Wizard
及其WizardPage
甚至可以包含在WizardDialog
中;任何事都可以实现IWizardContainer
接口以不同的方式呈现向导。
答案 1 :(得分:1)
如果是对话框,我发现我需要明确指出我需要在右上角的最小,最大按钮。为此,我需要在构造函数中调用以下方法:
setShellStyle(getShellStyle() | SWT.MAX | SWT.MIN | SWT.RESIZE);
由于Wizard也是一个对话框,我可以调用上面的方法来重置shellStyle,不包括max,min和其他按钮(参见上面的代码)。默认情况下,向导可能是添加这些按钮。但我认为您可以通过在向导创建结束时重新调用来覆盖它。希望这会有所帮助。
答案 2 :(得分:1)
是文件 - >以编程方式启动的新向导或自定义向导。如果是自定义的,则必须创建WizardDialog,然后将Wizard实例传递给它。创建WizardDialog时,您还可以创建Shell,您可以在不使用SWT.RESIZE的情况下发送参数。对于文件 - >新的,因为对话框不是由你创建的,我不认为你可以在那里控制调整大小选项。 resize只能在Shell的构造函数中传递。
答案 3 :(得分:1)
public class InstallerWizard extends Wizard{
...
main()
{
WizardDialog dialog = new DisableMax(shell, new InstallerWizard());
dialog.open();
}
} public class DisableMax扩展了WizardDialog {
public DisableMax(Shell parentShell, IWizard newWizard) {
super(parentShell, newWizard);
setShellStyle(SWT.CLOSE | SWT.MIN | SWT.RESIZE | getDefaultOrientation());
}
}