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とそのWizardPages が a に含まれるという保証さえありませんWizardDialogIWizardContainerウィザードを別の方法で表示するインターフェイスを実装できるものは何でもあります。

于 2012-05-15T13:13:11.510 に答える
1
public class InstallerWizard extends Wizard{
...
main()
{
WizardDialog dialog = new DisableMax(shell, new InstallerWizard());
dialog.open();
}

} public class DisableMax extends WizardDialog {

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

ダイアログの場合、右上隅に最小、最大のボタンが必要であることを明示的に指定する必要があることに気付きました。そのためには、コンストラクターで以下のメソッドを呼び出す必要があります。

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

Wizard はダイアログでもあるため、上記のメソッドを呼び出して shellStyle をリセットし、最大、最小、およびその他のボタンを含めないようにすることができます (上記のコードを参照)。ウィザードはデフォルトでこれらのボタンを追加している可能性があります。ただし、ウィザードの作成の最後に呼び出すことで、これをオーバーライドできると思います。お役に立てれば。

于 2012-05-15T13:13:01.040 に答える
1

ファイル -> 新規ウィザードまたはプログラムで起動されるカスタム ウィザードですか。カスタムの場合は、WizardDialog を作成し、Wizard インスタンスをそれに渡す必要があります。WizardDialog を作成するときに、SWT.RESIZE なしで引数を送信できるシェルも作成します。File -> New の場合、ダイアログはあなたが作成したものではないため、そこでサイズ変更オプションを制御できるとは思いません。サイズ変更は、シェルのコンストラクターでのみ渡すことができます。

于 2012-05-16T12:37:59.760 に答える