如何在Eclipse中强制JFace向导的最小高度?

时间:2011-08-12 12:06:08

标签: java swt eclipse-rcp jface

我正在展示一个太低的向导(代码here),因此内容没有完全显示(见下面的截图):

enter image description here

如何强制向导具有最小高度?

根据this question here on StackOverflow上的答案,向导的高度与向导中最大的向导页面的高度相同,但我的向导只能根据内容来调整大小最大的页面,我也尝试使用WizardPage类中的代码设置第一个可见向导页面的最小高度:

@Override
public void createControl(Composite parent) {
  // create the composite to hold the widgets
  Composite composite =  new Composite(parent, SWT.NULL);
  composite.setSize(300, 1024); // TODO: Does this work?

  GridData gridData = new GridData(300, 1024);
  gridData.heightHint = 1024;
  gridData.minimumHeight = 1024;
  composite.setLayoutData(gridData);

......但到目前为止没有成功。

任何提示?

4 个答案:

答案 0 :(得分:4)

尝试设置

parent.setLayout(new GridLayout());

createControl()第一页的实施。

您在该方法中获得的父项似乎有PageContainerFillLayout的实例作为布局,而不是GridLayout

如果您可以访问WizardDialog,也可以调用

wizardDialog.setMinimumPageSize(300, 1024)

答案 1 :(得分:0)

您可能需要为GridData指定高度提示。

或者,您可以使用三列GridLayout并获取第一列之后的所有行以跨越第2列和第3列。我倾向于使用GridLayout并且之前没有遇到此问题。

答案 2 :(得分:0)

您可以使用以下代码:

parent.addControlListener(new ControlAdapter() { public void controlResized(ControlEvent event) { parent.setSize(parent.computeSize(490, 320)); } });

答案 3 :(得分:0)

我只是遇到了一个非常类似的问题(在Windows上):没有完全显示向导页面中没有消息的向导。快速为我解决此问题的方法是,在向导页面构造函数中只添加一个空格的消息:

class Page extends WizardPage {

    Page() {
        super("page.id", "Page title", null);
        setMessage(" ");

接受的答案对我不起作用(向导中包含很多字段)。