2012-03-14 5 views
1

.Net 개발자이고 현재 Java로 마이그레이션 중입니다. 내가 여기서 무엇을 놓치고 있니? 프로그램을 실행할 때 아무런 표시가 없습니까?J2ME 응용 프로그램을 실행할 때 표시되지 않습니다.

import javax.microedition.lcdui.*; 
import javax.microedition.midlet.MIDlet; 
import java.util.Date; 
import java.util.TimeZone; 

public class CalenderMIDlet extends MIDlet{ 
    private Form form = null; 
    private DateField calender = null; 
    private static final int DATE = 0; 

    public CalenderMIDlet(){ 
    calender = new DateField("Date In:", DateField.DATE, TimeZone.getTimeZone("GMT")); 
    } 

    public void startApp(){ 
    display = Display.getDisplay(this); 
    Form form = new Form("Calender"); 
    form.append(calender); 
    } 

    public void pauseApp(){} 

    public void destroyApp(boolean destroy){ 
    notifyDestroyed(); 
    } 
} 

답변

3

private Form form = null;

을 설정하지 마십시오 훨씬 더 나을 말할 수있는 이 코드를 사용해보십시오

import javax.microedition.lcdui.*; 
import javax.microedition.midlet.MIDlet; 
import java.util.Date; 
import java.util.TimeZone; 

public class CalenderMIDlet extends MIDlet{ 
    private Form form; 
    private Display display; 
    private DateField calender; 
    private static final int DATE = 0; 

    public CalenderMIDlet(){ 
     calender = new DateField("Date In:", DateField.DATE, TimeZone.getTimeZone("GMT")); 
    } 

    public void startApp(){ 
     display = Display.getDisplay(this); 
     Form form = new Form("Calender"); 
     form.append(calender); 
     display.setCurrent(form); 
    } 

    public void pauseApp(){} 

    public void destroyApp(boolean destroy){ 
     notifyDestroyed(); 
    } 
} 
2

내가 무슨 말이냐?

그럼 지금까지 내가 말할 수있는 코드는 (인용 API 문서) "... ... 다른 Displayable 객체를 디스플레이에 표시하는 것이"을 요청할 것이라고, Display.setCurrent(Displayable)를 호출 벗어났습니다.

프로그램을 실행할 때 아무런 표시가 없습니까?

위의 내용을 고려하면 예상되는 동작입니다. 대부분 startApp 메소드에서 display.setCurrent(form)을 호출하면 양식이 표시됩니다.

사이드 노트. 나는 또한 칼렌더 DateField의 생성자를 startApp로 옮기는 것을 고려할 것이다. 내 기억에 따르면이 방법은 더욱 신뢰할 수 있습니다.

  • 도의 startApp의이 부분은 매우 비린내 같습니다
    Form form = new Form("Calender"); /* why is 'Form' here? */
    까지 내가 Form을 제거하는
+0

이 여전히 표시되지 않는 것 방법을 사용합니다. 나는 그것을 시험해 보았다. – Lion

+0

@Lion 무엇을 시도했는지 모르겠지만'setCurrent'가 없으면 아무 것도 표시되지 않습니다. – gnat

+0

'setCurrent()'가 없으면 아무 것도 표시되지 않습니다. 그냥'setCurrent()')'Date In : '을 표시합니다. 나는 그것을 이해할 수 없다. – Lion

2

그냥의 startApp 코드 중 하나 다음 줄()

public void startApp(){ 
    display = Display.getDisplay(this); 
    Form form = new Form("Calender"); 
    form.append(calender); 
display.setCurrent(form); 
    } 
관련 문제