在SWT中禁用窗口大小调整 - 使用复合

时间:2013-09-12 11:43:51

标签: java widget swt

正在开发一个只有很少向导页面的eclipse插件。我需要向导窗口大小不变,使用"禁用 MAXIMIZE和MINIMIZE ","窗口 RESIZE禁用"

重点是我没有使用 SHELL 。我正在使用 COMPOSITE ,它没有任何样式位。

我该怎么做?我只是提供了我整个代码的一部分:

public void createControl(Composite parent) 
{
    // TODO Auto-generated method stub
    composite = new Composite(parent, SWT.NONE );
    composite.setLayout(new GridLayout());

    Composite selectAdapterComposite = new Composite(composite, SWT.NONE);
    FormLayout reportOptionsCompositeLayout = new FormLayout();
    reportOptionsCompositeLayout.marginHeight = 1;
    reportOptionsCompositeLayout.marginWidth = 1;
    selectAdapterComposite.setLayout(reportOptionsCompositeLayout);

    buttonInterfaceSelection = new Button(selectAdapterComposite,SWT.RADIO);
            //SWT.CHECK);
    buttonInterfaceSelection.setText("Generate adapter using interface !");
    buttonInterfaceSelection.setSelection(true);
    buttonInterfaceSelection.addListener(SWT.Selection, this);
    FormData exportInToExcelButtonData = new FormData();
    exportInToExcelButtonData.left = new FormAttachment(null, 5);
    buttonInterfaceSelection.setLayoutData(exportInToExcelButtonData);

    // One Text Box

    Label searchBoxLabel = new Label(selectAdapterComposite, SWT.None);
    searchBoxLabel.setText("Search to select [Type to get the results below]");
    FormData destinationLabelData = new FormData();
    destinationLabelData.top = new FormAttachment(buttonInterfaceSelection, 10);
    destinationLabelData.left = new FormAttachment(null, 5);
    searchBoxLabel.setLayoutData(destinationLabelData);
    searchTextBox = new Text(selectAdapterComposite, SWT.BORDER);
    searchTextBox.setSize(20, 2);

    FormData searchTextBoxData = new FormData();
    searchTextBoxData.top = new FormAttachment(searchBoxLabel, 8);
    searchTextBoxData.left = new FormAttachment(null, 5);
    // destinationFolderPathData.left = new
    // FormAttachment(destinationLabel,15);
    searchTextBoxData.width = 400;
    searchTextBox.addListener(SWT.Modify, this);
    searchTextBox.setEnabled(true);
    searchTextBox.setLayoutData(searchTextBoxData);

    .
    .
    .   
    .
    .

    setControl(composite);
}

请帮帮我。

2 个答案:

答案 0 :(得分:1)

您的代码段与您的问题无关。关键词是向导。创建该向导时,它需要Shell,因此您可以在其中设置其样式位。

WizardDialog的构造函数:

public WizardDialog(Shell parentShell, IWizard newWizard)

shell样式位的示例:

parentShell.setShellStyle(parentShell.getShellStyle() | (~SWT.RESIZE));

答案 1 :(得分:1)

感谢您的回复......我是一名新手,您的回答给了我一个我以前知道的重要信息。现在,我花了一些时间来浏览小部件文档并找到了一些东西。

复合:此类的实例是能够包含其他控件的控件。

Shell :此类的实例表示桌面或“窗口管理器”正在管理的“窗口”。

我意识到我对SHELL和COMPOSITE的理解是错误的。

结论:所以我必须依赖SHELL来提供窗口大小调整控件,并且使用COMPOSITE不会给我任何调整大小选项......

如果我错了请纠正我..希望这对其他新手也有用... 感谢。

P.S。:现在我的情况很糟糕,我的代码段与我的问题cos无关,我正在研究别人的代码,并尝试对其进行一些更改。我没有在SHELL中进行更改(在其他类中创建),而是在COMPOSITE中进行更改。