2010-07-10 56 views
2

我已經使用GWT 2.0.4生成了一個新的Web應用程序項目。我用下面的代碼替換了onModuleLoad()代碼:爲什麼這個GWT DockLayoutPanel的對話框尺寸如此之小?

public void onModuleLoad() { 
    DockLayoutPanel dp = new DockLayoutPanel(Unit.EM); 
    dp.addNorth(new Button("north search"), 4); 
    dp.addSouth(new Button("Search"), 4); 
    dp.addWest(new Button("west"), 4); 
    dp.addEast(new Button("east"), 4); 

    RootLayoutPanel.get().add(dp); 
} 

產生我認爲是正確的東西;四個按鈕,每邊一個。但是,如果我試圖把那同樣的事情到對話框是這樣的:

public void onModuleLoad() { 
    DockLayoutPanel dp = new DockLayoutPanel(Unit.EM); 
    dp.addNorth(new Button("north search"), 4); 
    dp.addSouth(new Button("Search"), 4); 
    dp.addWest(new Button("west"), 4); 
    dp.addEast(new Button("east"), 4); 

    DialogBox dlog = new DialogBox(); 
    dlog.add(dp); 
    dlog.show(); 

} 

我得到的是在右上角壓扁了一個小小的對話框。按鈕在那裏,但它們只有幾個像素寬。

爲什麼?我究竟做錯了什麼?不應該對話框有一些非常類似於正常的窗口?

回答

5

RootLayoutPanel專門用來包裝LayoutPanels並至少在一定程度上處理大小等。如果你想在一個正常的Widget包裝一個LayoutPanel,你需要明確設置面板的大小:

DockLayoutPanel dp = new DockLayoutPanel(Unit.EM); 
    dp.addNorth(new Button("north search"), 4); 
    dp.addSouth(new Button("Search"), 4); 
    dp.addWest(new Button("west"), 4); 
    dp.addEast(new Button("east"), 4); 
    dp.setSize("20em", "20em"); 

    DialogBox dlog = new DialogBox(); 
    dlog.add(dp); 
    dlog.show(); 

看看是否有幫助!祝你好運!

+0

在談論這類事情的文檔中是否有任何地方?我在http://code.google.com/webtoolkit/doc/latest/DevGuideUiPanels.html 中看不到任何有用的內容更具體地說,您如何知道各種小部件中哪些小部件需要設置顯式大小,以及什麼時候? – 2010-07-12 16:40:44

+1

詹姆斯嗨, 看看這裏: http://code.google.com/webtoolkit/doc/latest/DevGuideUiPanels.html#Design 文檔確實有點粗略,但在「使用LayoutPanel without RootLayoutPanel「部分,討論了LayoutPanels和非LayoutPanels的相互作用。 – 2010-07-12 18:18:24

相關問題