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);}
我不使用