如何跨越gridLayout的2列?

时间:2015-09-08 14:47:31

标签: java swt eclipse-rcp jface grid-layout

我想在网格布局中跨越3列的2列,但我不知道怎么做,有人可以给我一些指导如何做?

示例代码和图片如下:

@PostConstruct
    public void PostConstruct(Composite parent) {

        toolkit = new FormToolkit(Display.getDefault());
        form = new ScrolledForm(parent, SWT.V_SCROLL);
        form.setBounds(0, 0, 650, 478);
        form.setExpandHorizontal(true);
        form.setExpandVertical(true);
        form.setBackground(toolkit.getColors().getBackground());
        form.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
        form.setFont(JFaceResources.getHeaderFont());
        form.setText("DOCUMENTATIONS");
        toolkit.decorateFormHeading(form.getForm());
        GridLayout cl = new GridLayout(3, true);
        form.getBody().setLayout(cl);

        sectionSelection = toolkit.createSection(form.getBody(), Section.TITLE_BAR);
        sectionSelection.setText("");
        sectionClientSelection = toolkit.createComposite(sectionSelection);

        sectionClientSelection.setLayout(new GridLayout());
        sectionClientSelection.setLayoutData(new GridData(100, 100));
        sectionSelection.setClient(sectionClientSelection);

        createSelectionSection();

        sectionDefinition = toolkit.createSection(form.getBody(), Section.TITLE_BAR);
        sectionDefinition.setText("");
        sectionClientDefinition = toolkit.createComposite(sectionDefinition);

        sectionClientDefinition.setLayout(new GridLayout());
        GridData gridData = new GridData(SWT.FILL,GridData.VERTICAL_ALIGN_END);
        gridData.horizontalSpan = 2;
        gridData.horizontalAlignment = GridData.FILL;
        sectionClientDefinition.setLayoutData(gridData);
        sectionDefinition.setClient(sectionClientDefinition);

        createDefinitionSection();

    }

enter image description here

1 个答案:

答案 0 :(得分:0)

您需要在部分中为Section而不是Composite设置布局数据。

sectionDefinition.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1));