2012-05-07 3 views
2

Java ME에 두 개의 텍스트 필드가 있으며 세 번째 필드를 만들려고하면 사용자가 입력 한 두 개의 이전 텍스트 필드를 합계로 계산합니다. 처음 두 텍스트 필드를 Int 값으로 변환 할 것입니다. 그런 다음 변수를 세 번째 텍스트 필드에 추가하고 표시 할 변수로 설정하십시오.J2ME의 텍스트 필드에서 int 또는 double을 구문 분석

아래 코드와 함께 오류 메시지가 표시됩니다. 다른 방법이 있습니까?

public firstMIDlet() 
{ 
    d = Display.getDisplay(this); 

    muaj1 = new TextField("0-11 muaj", "", 6, TextField.ANY); 
    int m1Int = Integer.parseInt(TextField.getString()); 

    muaj2 = new TextField("12-23 muaj", "", 6, TextField.ANY); 
    int m2Int = Integer.parseInt(TextField.getString()); 

    totali = new TextField("TOTALI", "", 7, TextField.ANY); 
} 

답변

0

고마워를 사용할 수있다

public void calc() { 
    int a1=0, a2=0, a3=0, a4=0, res=0; 
    a1 = Integer.parseInt(muaj1.getString()); 
    a2 = Integer.parseInt(muaj2.getString()); 
    a3 = Integer.parseInt(muaj3.getString()); 
    a4 = Integer.parseInt(muaj4.getString()); 
    totali.setText((a1 + a2 + a3 + a4) + ""); 
    } 
1

당신은 텍스트 필드에 정수 그래서 대신 모든 세 개의 텍스트 필드에서 TextField.ANY 사용 TextField.NUMERIC을 필요로하기 때문에. 이렇게하면 사용자는 숫자 만 입력 할 수 있습니다. 그러나 세 번째 textField에 제약 조건을 추가 할 수 있습니다. totali.setConstraints(TextField.UNEDITABLE);

더욱 자세히 documentation을 읽고 j2me를 익히십시오.

3

어떤 오류가 발생했는지 그리고 어디에 게시해야합니다. 아마도 ...

반환되는 값이 ""(사용자의 경우)이면 Integer로 변환 할 수없고 NumberFormatException을 반환합니다.

Integer로 구문 분석하려면 TextField.NUMERIC을 사용해야합니다.

또한 세 번째 필드의 값을 동적으로 계산하는 스레드를 시작해야 할 수도 있습니다.

TextField.getString()은 정적 메서드가 아니기 때문에 언제든지 오류가 발생하며 TextField에서 가져올 텍스트를 알 수 없습니다.

그래서, 당신은 같은 것을 할 필요가 :

private Form f; 
    public firstMIDlet() { 
     d = Display.getDisplay(this); 
     f = new Form("myform); 
     muaj1 = new TextField("0-11 muaj","",6,TextField.NUMERIC); 
     muaj2 = new TextField("12-23 muaj","",6,TextField.NUMERIC); 
     totali = new TextField("TOTALI","",7,TextField.NUMERIC | TextField.UNEDITABLE); 
     myform.append(muaj1); 
     myform.append(muaj2); 
     myform.append(totali); 
     startUpdating(); 
    } 

    public void startApp() { 
     d.setCurrent(form); 
    } 

    public void startUpdating() { 
     new Thread() { 
      public void run() { 
       try { 
        int m1Int = Integer.parseInt(muaj1.getString()); 
        int m2Int = Integer.parseInt(muaj2.getString()); 
        totali.setString((m1Int + m2Int) + ""); 
       } 
       catch (NumberFormatExeption nfe) {} 
      } 
     }.start(); 
    } 

"" + someInt 

가 문자열로 변환 곳. 또한 당신은 내가 계산을위한 새로운 기능을 TextField.NUMERIC를 사용하여 생성하여, 작업에 대한 계산을 입수했습니다

Integer.toString(m1Int + m2Int)