我使用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();
}
我得到的是一个小小的对话框,在右下角被压扁了。按钮在那里,但它们只有几个像素宽。
为什么呢?我究竟做错了什么?对话框不应该与普通窗口非常相似吗?
答案 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();
看看是否有帮助!祝你好运!