0

我想禁用按钮最大化/最小化,下面我发布图片来解释

在此处输入图像描述

这是我的代码:

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();”获得复合材料的外壳。但我不明白如何设置这些参数“SWT.SHELL_TRIM | SWT.TOOL”!谢谢

4

4 回答 4

2

控制Window/Shell不是 a 的责任WizardPage,它不能那样做。WizardDialog这是创建它的代码或代码的责任。事实上,不能保证 aWizard和它WizardPage的 s 甚至会包含在 a 中WizardDialog;任何东西都可以实现IWizardContainer界面以不同的方式呈现向导。

于 2012-05-15T13:13:11.510 回答
1

在对话框的情况下,我观​​察到我需要在右上角明确指定我需要最小、最大按钮。为此,我需要在构造函数中调用以下方法:

setShellStyle(getShellStyle() | SWT.MAX | SWT.MIN | SWT.RESIZE);

由于 Wizard 也是一个对话框,我可以调用上面的方法来重置 shellStyle 不包括 max、min 和其他按钮(见上面的代码)。默认情况下,向导可能会添加这些按钮。但我认为您可以通过在向导创建结束时调用来覆盖它。希望这可以帮助。

于 2012-05-15T13:13:01.040 回答
1

它是以编程方式启动的文件 - > 新向导还是自定义向导。如果它是自定义的,则必须创建 WizardDialog 然后将 Wizard 实例传递给它。创建 WizardDialog 时,您还将创建 Shell,您可以在没有 SWT.RESIZE 的情况下为其发送参数。对于文件-> 新建,由于对话框不是由您创建的,我认为您不能在那里控制调整大小选项。调整大小只能在 Shell 的构造函数中传递。

于 2012-05-16T12:37:59.760 回答
1
public class InstallerWizard extends Wizard{
...
main()
{
WizardDialog dialog = new DisableMax(shell, new InstallerWizard());
dialog.open();
}

} 公共类 DisableMax 扩展 WizardDialog {

    public DisableMax(Shell parentShell, IWizard newWizard) {
        super(parentShell, newWizard);
        setShellStyle(SWT.CLOSE | SWT.MIN | SWT.RESIZE | getDefaultOrientation());
    }
}
于 2016-01-06T12:11:53.770 回答