Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse 禁用JFace向导页面上的窗口大小调整_Eclipse_Eclipse Plugin_Swt_Jface - Fatal编程技术网

Eclipse 禁用JFace向导页面上的窗口大小调整

Eclipse 禁用JFace向导页面上的窗口大小调整,eclipse,eclipse-plugin,swt,jface,Eclipse,Eclipse Plugin,Swt,Jface,我想禁用“最大化/最小化”按钮,请在我发布的图片下方进行解释 这是我的代码: public class ProjectWizardPageOne extends WizardPage { private String platform; public ProjectWizardPageOne(String title) { super(title); this.setTitle(title); this.setMessage("Configure Project N

我想禁用“最大化/最小化”按钮,请在我发布的图片下方进行解释

这是我的代码:

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”!
感谢

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

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

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

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

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

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

控制
窗口
/
外壳
不是
向导页面
的责任,它不能做到这一点。这是
向导对话框
或创建它的代码的责任。事实上,不能保证
向导
及其
向导页面
甚至会包含在
向导对话框
中;任何东西都可以实现
IWizardContainer
接口,以不同的方式呈现向导。

控制
窗口
/
Shell
不是
向导页面
的责任,它不能做到这一点。这是
向导对话框
或创建它的代码的责任。事实上,不能保证
向导
及其
向导页面
甚至会包含在
向导对话框
中;任何东西都可以实现
IWizardContainer
界面,以不同的方式呈现向导。

是文件->新建向导还是通过编程启动的自定义向导。如果是自定义的,则必须创建WizardDialog,然后将向导实例传递给它。在创建WizardDialog时,还需要创建Shell,您可以在不使用SWT.RESIZE的情况下为其发送参数。对于File->New,由于对话框不是由您创建的,因此我认为您无法控制其中的resize选项。调整大小只能在Shell的构造函数中传递。

是文件->新建向导还是通过编程启动的自定义向导。如果是自定义的,则必须创建WizardDialog,然后将向导实例传递给它。在创建WizardDialog时,还需要创建Shell,您可以在不使用SWT.RESIZE的情况下为其发送参数。对于File->New,由于对话框不是由您创建的,因此我认为您无法控制其中的resize选项。调整大小只能在Shell的构造函数中传递

public class InstallerWizard extends Wizard{
...
main()
{
WizardDialog dialog = new DisableMax(shell, new InstallerWizard());
dialog.open();
}
} 公共类DisableMax扩展向导对话框{

    public DisableMax(Shell parentShell, IWizard newWizard) {
        super(parentShell, newWizard);
        setShellStyle(SWT.CLOSE | SWT.MIN | SWT.RESIZE | getDefaultOrientation());
    }
}
} 公共类DisableMax扩展向导对话框{

    public DisableMax(Shell parentShell, IWizard newWizard) {
        super(parentShell, newWizard);
        setShellStyle(SWT.CLOSE | SWT.MIN | SWT.RESIZE | getDefaultOrientation());
    }
}

Hi-Aslam感谢您的重播。我必须把您的代码行放在哪里?Hi-Aslam感谢您的重播。我必须把您的代码行放在哪里?感谢您的回复,在创建向导页面的代码下面。
public class NewMyProjectWizard扩展向导在向导中实现{ProjectWizardPageOne projectPageOne;public NewMyProjectWizard(){super();setNeedsProgressMonitor(true);}public void init…public boolean performFinish…public void addPages(){projectWizardPageOne=new projectWizardPageOne(“新建我的项目”);addPage(projectWizardPageOne);}
你能解释一下为了达到我的目标我必须修改的地方吗?非常感谢你的回复,在创建向导页面的代码下面。
公共类NewMyProjectWizard在向导{ProjectWizardPageOne ProjectWizardPageOne;公共NewMyProjectWizard(){super();setNeedsProgressMonitor(true);}public void init…public boolean performFinish…public void addPages(){projectWizardPageOne=new projectWizardPageOne(“新建我的项目”);addPage(projectWizardPageOne);}
你能告诉我在哪里需要修改才能达到我的目标吗?非常感谢你的重播。向导是自定义的。正如你从我的代码中看到的,我已经创建了
ProjectWizardPageOne
,我从这里调用这个类
公共类NewMyProjectWizard扩展向导在向导中实现{ProjectWizardPageOne ProjectWizardPageOne;public NewMyProjectWizard(){super();setNeedsProgressMonitor(true);}public void init…public boolean performFinish…public void addPages(){ProjectWizardPageOne=new ProjectWizardPageOne(“新建我的项目”);addPage(ProjectWizardPageOne);}
我不使用WizardDialog。向导是通过plugin.xml启动的
,那么您的向导是eclipse新建向导的一部分。在这种情况下,您不会创建向导对话框。因此,您不能在此对话框中禁用maximize。原因很简单,它也将应用于文件->Ne中包含的所有其他新向导w支持将具有相同的行为。这有意义吗?是的,有意义。感谢您的回复。感谢您的重播。向导是自定义的。正如您从我的代码中看到的,我创建了
ProjectWizardPageOne
,我从这里调用此类
公共类NewMyProjectWizard扩展向导在向导中实现{ProjectWizardPageOne ProjectWizardPageOne;public NewMyProjectWizard(){super();setNeedsProgressMonitor(true);}public void init…public boolean performFinish…public void addPages(){ProjectWizardPageOne=new ProjectWizardPageOne(“新建我的项目”);addPage(ProjectWizardPageOne);}
我不使用