2010-11-23 4 views
0

J2ME 애플리케이션에 양식을 추가하고 있지만 메인 화면으로 돌아 가려 할 때 항상 nullpointer 예외가 발생합니다. 이것은 캔버스를 사용할 때 발생하지 않는 것으로 보입니다. 정상적으로 주 메뉴로 돌아갈 수 있습니다. 뭐라 구요? QuickAlarm에서 메인 메뉴로 돌아 간다 QuickAlarmJ2ME 디스플레이 어블을 전환 할 때 nullpointer 예외 발생

의 주요 미들 릿

quickAlarm = new QuickAlarm("Set quick alarm",this); 
       display.setCurrent(quickAlarm); 

생성자

public QuickAlarm(String title,HelloMIDlet midlet) { 
     super(title); 
     df = new DateField("Alarm time",DateField.TIME); 
     this.append(df); 
     this.midlet = midlet; 

     backCommand = new Command("Back",Command.BACK,0); 
     saveCommand = new Command("Save",Command.OK,1); 

     this.addCommand(backCommand); 
     this.addCommand(saveCommand); 
    } 

에서 양식을 시작

,

this.midlet.leaveCanvas(); 

이 주 미들 릿에

public void leaveCanvas() { 
     display.setCurrent(startOptions); 
} 

전체 오류가 단순히 설치에 명령 리스너를 잊어

TRACE: <at java.lang.NullPointerException: 0>, Exception caught in Display class 
java.lang.NullPointerException: 0 
     at javax.microedition.lcdui.Display$ChameleonTunnel.callScreenListener(), bci=46 
     at com.sun.midp.chameleon.layers.SoftButtonLayer.processCommand(), bci=74 
     at com.sun.midp.chameleon.layers.SoftButtonLayer.soft1(), bci=37 
     at com.sun.midp.chameleon.layers.SoftButtonLayer.keyInput(), bci=36 
     at com.sun.midp.chameleon.CWindow.keyInput(), bci=38 
     at javax.microedition.lcdui.Display$DisplayEventConsumerImpl.handleKeyEvent(), bci=17 
     at com.sun.midp.lcdui.DisplayEventListener.process(), bci=277 
     at com.sun.midp.events.EventQueue.run(), bci=179 
     at java.lang.Thread.run(Thread.java:637) 
+0

display.setCurrent (startOptions); * startOptions *는 어디에 설정되어 있습니까? – frayser

+0

메인 미들에 정의되어 있습니다. – Pallinder

답변

0

는 "quickAlarm"& "startOptions"무엇인가를 정의하십시오 우선은해야한다 "() display.setCurrent" "quickAlarm"& "startOptions"그들이입니다 여부를 확인한 method.So에서 "표시 가능"개체를 통과 할 수 javax.microedition.lcdui.Displayable의 서브 클래스