GWT의 버튼을 클릭하면 NullPointer 예외가 발생합니다. 문제를 디버그하고 디버그하는 방법을 제안 할 수 있습니까? 나는 코드의 스 니펫을 여기에 게시했다.Onclick의 NullPointer 예외
작성시 영화 티켓을 만드는 양식이 있으며, 사용자가 결정하지 않으면 취소됩니다. 취소시 첫 번째 양식으로 성공적으로로드되지만 부모 양식 버튼은 클릭시 널 포인터 예외를 발생시킵니다.
참고 :이 상위 단추는 createMovie 페이지를로드하지 않으면 정상적으로 작동합니다.
createMovie.class
FocusWidget.class에서public void init(ClickListener listener)
{
// code ...
// ........
cancel.addClickListener(listener);
createMovie.add(header);
createMovie.add(table);
createMovie.setHeight("663px");
initWidget(createMovie);
}
public void addClickListener(ClickListener listener) {
if (clickListeners == null) {
clickListeners = new ClickListenerCollection();
sinkEvents(Event.ONCLICK);
}
clickListeners.add(listener);
}
// code
@Override
public void onBrowserEvent(Event event) {
switch (DOM.eventGetType(event)) {
case Event.ONCLICK:
if (clickListeners != null) {
clickListeners.fireClick(this); ------->>> LINE 102
}
break;
case Event.ONBLUR:
case Event.ONFOCUS:
if (focusListeners != null) {
focusListeners.fireFocusEvent(this, event);
}
break;
case Event.ONKEYDOWN:
case Event.ONKEYUP:
case Event.ONKEYPRESS:
if (keyboardListeners != null) {
keyboardListeners.fireKeyboardEvent(this, event);
}
break;
}
}
ClickListenerCollection.class에서
public void fireClick(Widget sender) {
for (ClickListener listener : this) {
listener.onClick(sender);
}
}
오류 :
[ERROR] Uncaught exception escaped
java.lang.NullPointerException: null
at com.google.gwt.user.client.ui.ClickListenerCollection.fireClick(ClickListenerCollection.java:34)
at com.google.gwt.user.client.ui.FocusWidget.onBrowserEvent(FocusWidget.java:102)
at com.google.gwt.user.client.DOM.dispatchEventImpl(DOM.java:1308)
at com.google.gwt.user.client.DOM.dispatchEventAndCatch(DOM.java:1287)
at com.google.gwt.user.client.DOM.dispatchEvent(DOM.java:1255)
at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
이 당신이 정말로'addClickHandler'instead를 사용해야 addClickListener'가되지 않습니다'아마 당신의 문제의 원인이 아니라. – Marconius