Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.
Например, ниже - класс ученика, который будет использовать его в нашем коде.
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 ");
}
}
}
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);
Я думаю, что необходимо будет поместить что-то слева и/или право на разделение (split.setLeftWidget (виджет), split.setRightWidget (виджет) ИЛИ split.add (виджет), который добавит сначала налево, затем направо) для чего-либо для разоблачения.
Попытайтесь установить ширину и/или высоту rootpanel к 100% прежде, чем добавить Ваш виджет.
Панели автоматически изменяют размер к наименьшей видимой ширине. Таким образом, необходимо изменить размер каждой панели, Вы добавляете к RootPanel к 100% включая Ваш SplitPanel. Самому RootPanel не нужно изменение размеров. Так попытка:
split.setWidth("100%");
split.setHeight("100%");
В документации для DecoratorPanel говорится:
при установке ширины или высоты DecoratorPanel необходимо установить высоту и ширину middleCenter ячейки к 100% так, чтобы middleCenter ячейка подняла все свободное место. Если Вы не установите ширину и высоту DecoratorPanel, то это перенесет свое содержание плотно.
Проблема состоит в том, что ячейка DecoratorPanel middleCenter заполнится трудный на Вашем содержании как значение по умолчанию, и SplitPanel не позволяет "100%-ю" установку размера стиля. Чтобы сделать, что Вы хотите, установите стиль таблицы соответственно на Вашем CSS:
.gwt-DecoratorPanel .middleCenter {высота: 100%; ширина: 100%;}