【问题标题】:How to force a minimum height of a JFace Wizard in Eclipse?如何在 Eclipse 中强制 JFace 向导的最小高度?
【发布时间】:2011-08-12 12:06:07
【问题描述】:

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

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

根据this question here on StackOverflow 上的回答,向导将与向导中最大的向导页面高度相同,但我的向导显然没有根据至少 content 的最大的页面,我还尝试在 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);

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

有什么提示吗?

【问题讨论】:

  • 您是否尝试过在您的向导中覆盖 createPageControls(空块)?
  • 谢谢,但没有帮助,不幸的是。顺便说一句,请注意这是 WizardPage 类,而不是 Wizard 类。

标签: java swt eclipse-rcp jface


【解决方案1】:

尝试设置

parent.setLayout(new GridLayout());

到您的第一页的createControl() 实现。

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

如果你可以访问你的 WizardDialog,你也可以调用

wizardDialog.setMinimumPageSize(300, 1024)

【讨论】:

  • 确实是parent.setLayout(new GridLayout());成功了!非常感谢!
  • 嗯,第二个例子实际上效果更好。第一个给了我奇怪的奇怪之处,例如第二个 WizardPage 中的内容垂直“居中”。不过,我必须进行一些铸造,才能从 WizardPage 中掌握 WizardDialog,但效果很好:((WizardDialog) this.getWizard().getContainer()).setMinimumPageSize(300, 400);
【解决方案2】:

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

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

【讨论】:

  • 是的,正如您在上面的代码中看到的,我确实为 GridData 设置了一个 heightHint ...但它仍然不起作用。实在想不通为什么...
  • 所以你做到了。这是漫长的一天,我一定错过了。
【解决方案3】:

您可以使用以下代码:

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

【讨论】:

    【解决方案4】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-07
      • 2011-02-16
      • 1970-01-01
      • 2012-08-08
      • 2011-03-22
      • 2021-08-31
      • 1970-01-01
      • 2012-10-24
      相关资源
      最近更新 更多