使用它周围的复合材料调整JFace TableViewer的大小?

时间:2010-12-22 11:12:33

标签: java user-interface swt jface tableviewer

使用WindowBuilder for Eclipse,我创建了一个TableViewer,它放在一个复合体中。 (TableViewer创建了一个SWT Table,其中插入了TableViewer本身。

我尝试通过将grabExcessHorizontalSpacegrabVerticalSpace设置为true来使复合材料可调整大小,但是我如何制作表格并TableViewer填充复合材料?

2 个答案:

答案 0 :(得分:4)

我现在得到了答案,(非常感谢irc.freenode.net上#eclipse频道的rcjsuen)。

我看起来像这样的代码:         Composite comp = new Composite(container,SWT.NONE);         comp.setLayoutData(new GridData(SWT.LEFT,SWT.TOP,true,true,1,1));

我需要做的是,除了将grabExcessiveHorizo​​ntalSpace和grabExcessiveVerticalSpace设置为true(setLayoutData()函数中的参数3和4)之外,还要将参数1和2设置为SWT.FILL,还要添加FillLayout对象使用setLayout()函数,如下所示:

    Composite comp = new Composite(container, SWT.NONE);
    comp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
    comp.setLayout(new FillLayout());

答案 1 :(得分:3)

很难说没有代码,但根据您的说明,您没有在Composite上设置布局。如果您的复合只包含TableViewer,请尝试添加composite.setLayout(new FillLayout());

如果您的合成具有多个子项,则需要不同的布局,如GridLayout或MigLayout。然后,您还必须在Table上设置layoutData以及复合的其他子项。

Here是一些片段,展示了如何使用GridLayout。要了解更好的MigLayout,请参阅here