为什么这个GWT DockLayoutPanel的对话框大小这么小?

为什么这个GWT DockLayoutPanel的对话框大小这么小?,gwt,layout,dialog,Gwt,Layout,Dialog,我已经使用GWT2.0.4生成了一个新的Web应用程序项目。我将onModuleLoad()代码替换为: 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 Butt

我已经使用GWT2.0.4生成了一个新的Web应用程序项目。我将onModuleLoad()代码替换为:

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();

}
我得到的是一个小小的对话框,它被压在了右上角。按钮在那里,但它们只有几个像素宽


为什么??我做错了什么?对话框不应该有一些与普通窗口非常相似的东西吗?

RootLayoutPanel专门设计用于包装LayoutPanels,并至少在一定程度上负责调整大小等。如果要在普通小部件中包装布局面板,则需要显式设置面板的大小:

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();

看看这是否有帮助!祝你好运

文档中有没有提到过这类事情?更具体地说,我看不到任何有用的东西,您如何知道各种小部件中的哪些需要显式设置大小,以及何时设置?嗨,James,请看这里:文档确实有点粗略,但在页面的“使用LayoutPanel而不使用RootLayoutPanel”部分,讨论了布局面板和非布局面板的相互作用。