Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在SWT中从组合中添加组?_Java_Swt_Eclipse Rcp_Rcp - Fatal编程技术网

Java 如何在SWT中从组合中添加组?

Java 如何在SWT中从组合中添加组?,java,swt,eclipse-rcp,rcp,Java,Swt,Eclipse Rcp,Rcp,我在父级中有一个筛选器组合。我的示例图像如下: 我想从这个过滤器组合中添加一个组。我的示例代码如下: // create parent layout GridLayout parentLayout = new GridLayout(1, true); parent.setLayout(parentLayout); // design filter composite layout Group grp = new Group(parent, S

我在父级中有一个筛选器组合。我的示例图像如下:

我想从这个过滤器组合中添加一个组。我的示例代码如下:

// create parent layout
    GridLayout parentLayout = new GridLayout(1, true);
    parent.setLayout(parentLayout);         

    // design filter composite layout
    Group grp = new Group(parent, SWT.NONE);

    RowLayout grdLay = new RowLayout();

    GridData grdData = new GridData();

    grp.setLayoutData(grdData);

    grp.setLayout(grdLay);

    Composite grpComp = new Composite(grp,SWT.NONE);

    GridData gdData = new GridData();       

    RowLayout grplayout = new RowLayout();

    grpComp.setLayout(grplayout);

    grpComp.setLayoutData(gdData);

    Composite filterComposite = new Composite(grpComp, SWT.NONE);
    GridData gd_filterComposite = new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1);
    gd_filterComposite.widthHint = 1611;
    gd_filterComposite.heightHint = 42;
    filterComposite.setLayoutData(gd_filterComposite);

    RowLayout filterCompositeLayout = new RowLayout();
    filterCompositeLayout.type = SWT.VERTICAL;
    filterCompositeLayout.marginHeight = 5;
    filterCompositeLayout.center = true;
    filterCompositeLayout.fill = true;
    filterCompositeLayout.justify = true;
    filterCompositeLayout.wrap = true;
    filterComposite.setLayout(filterCompositeLayout);

    filterCompositeLayout.spacing = 20;
但我犯了一个错误。我的错误图像如下:


我怎样才能做到这一点?有人能给点建议吗?谢谢。

对于作为RowLayout一部分的控件,布局数据必须是RowData

所以

因为
grpComp
grp

同样地,
filterComposite
布局数据应该是
RowData


必须始终将控件的布局数据与包含控件的组合的布局相匹配。

您将RowLayout与GridData混合使用。可以将RowLayout与RowData一起使用,也可以将GridLayout与GridData一起使用。当我将组的RowLayout更改为GridLayout时,效果很好。非常感谢。但我有一个问题。我在filterComposite中添加了RowLayout和GridData,但效果很明显。为什么不为小组工作?请参见Gregs的答案,混合版面和版面数据永远不会起作用。如果它看起来是这样的话,那么布局数据就不会被评估,最终会失败。是的,我学到了,谢谢。
RowData gdData = new RowData();