Почему размер диалогового окна такой маленький с этой панелью 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();

Посмотрите, поможет ли это! Удачи!

Другие вопросы по тегам