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

时间:2010-07-10 00:09:34

标签: gwt layout dialog

我使用GWT 2.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);
}

这产生了我认为正确的东西;四个按钮,每个边缘一个。但是,如果我尝试将完全相同的东西放入这样的DialogBox中:

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

}

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

为什么呢?我究竟做错了什么?对话框不应该与普通窗口非常相似吗?

1 个答案:

答案 0 :(得分:5)

RootLayoutPanel专门用于包装LayoutPanels,并至少在一定程度上处理大小等。如果要将LayoutPanel包装在普通Widget中,则需要明确设置面板的大小:

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

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