Создание жидкой панели в GWT для заполнения страницы?

Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.

Например, ниже - класс ученика, который будет использовать его в нашем коде.

public class Student {

    private int id;

    public int getId() {
        return this.id;
    }

    public setId(int newId) {
        this.id = newId;
    }
}

Приведенный ниже код дает вам исключение с нулевым указателем.

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}

Поскольку вы используете Obj_Student, но вы забыли инициализировать его, как в правильном коде, показанном ниже:

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student = new Student();
            obj_Student.setId(12);
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}
18
задан T.Rob 27 December 2011 в 17:52
поделиться

6 ответов

Google has answered the main part of your question in one of their FAQs: http://code.google.com/webtoolkit/doc/1.6/FAQ_UI.html#How_do_I_create_an_app_that_fills_the_page_vertically_when_the_b

Основной момент заключается в том, что вы не можете установить высоту на 100%, вы должны сделать что-то вроде этого:

final VerticalPanel vp = new VerticalPanel();
vp.add(mainPanel);
vp.setWidth("100%");
vp.setHeight(Window.getClientHeight() + "px");
Window.addResizeHandler(new ResizeHandler() {

  public void onResize(ResizeEvent event) {
    int height = event.getHeight();
    vp.setHeight(height + "px");
  }
});
RootPanel.get().add(vp);
​​
19
ответ дан 30 November 2019 в 07:50
поделиться

Я думаю, что необходимо будет поместить что-то слева и/или право на разделение (split.setLeftWidget (виджет), split.setRightWidget (виджет) ИЛИ split.add (виджет), который добавит сначала налево, затем направо) для чего-либо для разоблачения.

0
ответ дан 30 November 2019 в 07:50
поделиться

Попытайтесь установить ширину и/или высоту rootpanel к 100% прежде, чем добавить Ваш виджет.

0
ответ дан 30 November 2019 в 07:50
поделиться

Панели автоматически изменяют размер к наименьшей видимой ширине. Таким образом, необходимо изменить размер каждой панели, Вы добавляете к RootPanel к 100% включая Ваш SplitPanel. Самому RootPanel не нужно изменение размеров. Так попытка:

split.setWidth("100%");
split.setHeight("100%");
0
ответ дан 30 November 2019 в 07:50
поделиться

В документации для DecoratorPanel говорится:

при установке ширины или высоты DecoratorPanel необходимо установить высоту и ширину middleCenter ячейки к 100% так, чтобы middleCenter ячейка подняла все свободное место. Если Вы не установите ширину и высоту DecoratorPanel, то это перенесет свое содержание плотно.

0
ответ дан 30 November 2019 в 07:50
поделиться

Проблема состоит в том, что ячейка DecoratorPanel middleCenter заполнится трудный на Вашем содержании как значение по умолчанию, и SplitPanel не позволяет "100%-ю" установку размера стиля. Чтобы сделать, что Вы хотите, установите стиль таблицы соответственно на Вашем CSS:

.gwt-DecoratorPanel .middleCenter {высота: 100%; ширина: 100%;}

0
ответ дан 30 November 2019 в 07:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: