Почему размер диалогового окна такой маленький с этой панелью GWT DockLayoutPanel?
Я создал новый проект веб-приложения, используя GWT 2.0.4. Я заменяю код 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 ответ
Решение
RootLayoutPanel специально разработан для упаковки LayoutPanels и, по крайней мере, в определенной степени, заботится о размерах и т. Д. Если вы хотите обернуть 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();
Посмотрите, поможет ли это! Удачи!