2010-12-22 56 views
3

使用WindowBuilder for Eclipse,我已經創建了一個TableViewer,我已經放置在一個組合內。 (TableViewer創建SWT Table,其中插入TableViewer本身)。讓JFace TableViewer調整它的周圍組合?

我曾試圖彌補複合可調整大小設置grabExcessHorizontalSpacegrabVerticalSpace爲真,但如何讓我也表和填寫TableViewer複合?

回答

3

很難說沒有代碼,但從您的描述中,您不會在您的Composite上設置佈局。如果您的複合材料僅包含TableViewer,請嘗試添加composite.setLayout(new FillLayout());

如果你的組合有多個孩子,你需要一個不同的佈局,比如GridLayout或者MigLayout。然後,你還必須在你的表格和你的組合的其他孩子上設置layoutData。

Here是一些片段,它顯示瞭如何使用GridLayout。要了解我認爲更好的MigLayout,請參見here

+0

謝謝!是的,這是解決方案的一部分。另外,我還必須在setLayoutData()中設置SWT.FILL而不是SWT.LEFT和SWT.TOP。我在#eclipse IRC頻道的幫助下解決了這個問題,如單獨的答案中所述。 – 2010-12-22 14:36:23

4

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

我看起來像這樣的代碼: Composite comp = new Composite(container,SWT.NONE); (新的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()); 
相關問題