2012-05-31 36 views
1

請注意我正在使用Vaadin進行此操作。Vaadin佈局 - 如何讓面板擴大以填充大部分屏幕

我正在努力讓中間面板擴展到頂部和底部分別填充大部分屏幕的頁眉和頁腳。這裏是我的代碼:

public class GridpocApplication extends Application { 

@Override 
public void init() { 
    System.out.println("starting now."); 

    final Window mainWindow = new Window("My Application"); 
    setMainWindow(mainWindow); 

    mainWindow.getContent().setSizeFull(); 

    VerticalLayout mainColumn = new VerticalLayout(); 
    //Header 
    Label top = new Label("HEADER"); 
    mainColumn.addComponent(top); 

    //The middle bit 
    final Panel middlePanel = new Panel(); 
    middlePanel.setSizeFull(); 
    middlePanel.getContent().setSizeUndefined(); 
    middlePanel.setScrollable(true); 
    mainColumn.addComponent(middlePanel); 
    mainColumn.setExpandRatio(middlePanel, 1.0f); 

    //footer 
    Label bottom = new Label("FOOTER"); 
    mainColumn.addComponent(bottom); 
    mainWindow.addComponent(mainColumn); 

    //test 
    Label test= new Label("This area should fill most of the screen."); 
    middlePanel.addComponent(test); 
} 
} 

我在哪裏出錯了?我看到的是這樣的:

Valid XHTML

回答

4

嘗試使mainColumn.setSizeFull()mainWindow.setContent(mainColumn)

+0

謝謝,是的,我thnk你基本上是正確的 - 真正的問題是,我沒有設置主窗口的內容到mainColumn並且它已經有一個VerticalLayout(默認情況下)。一旦我這樣做,並設置一個'setSizeFull'的孩子,它的工作。謝謝。 –

+0

@Charles Anthony很棒,你能否看看這個; http://stackoverflow.com/questions/10910302/vaadin-table-does-not-update-no-matter-what-i-try – Spring