Почему размер диалогового окна такой маленький с этой панелью GWT DockLayoutPanel? - PullRequest
2 голосов
/ 10 июля 2010

Я создал новый проект веб-приложения, используя 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 Ответ

5 голосов
/ 12 июля 2010

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

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

...