2010-12-07 53 views
0

私は少し助けを使うことができました。このプログラムがうまく動作するようになったら、MVCデザインを使用しなければならないことが分かりました。それはかなり簡単ですが、私の小さなおもちゃのプログラムは私のフォームを表示されません。助けて!!以下snipetsを参照してください:MIDletのフォームが表示されません。 。 。斗!

public MileageMidlet() 
    { 

     // First get a blank user form 
     form = new Form("Bradford Gas Mileage Calculator"); 

     startPage = new StartPageView(); 
     inputScreen = new InputScreen(); 
     calculateMileage = new CalculateMileage(); 

     startCmd = new Command ("Start",Command.SCREEN,5); 
     clearCmd = new Command ("Clear",Command.SCREEN,1); 
     enterCmd = new Command ("Enter",Command.SCREEN,1); 
     exitCmd = new Command("Exit", Command.EXIT, 1); 

     // Set up event handlers to process user commands 
     form.setCommandListener(this); 
    } 


    public void startApp() { 

     startPage.createView(form);    

     form.addCommand(startCmd); 
     form.addCommand(exitCmd); 

     // Display initial form 
     Display.getDisplay(this).setCurrent(form); 
} 

スタートページビュークラス

import javax.microedition.lcdui.*; 

public class StartPageView 
{ 

StringItem strgItm, strgItm2; 
private Command startCmd, exitCmd; 

public StartPageView() 
{ 

} 

public void createView(Form form) 
{ 
     // First get a blank user form 
     form.deleteAll(); 
     form = new Form("Bradford Gas Mileage Calculator"); 
     strgItm = new StringItem ("","Welcome to the Bradford Mobile Gas Mileage Calculator!"); 
     strgItm2 = new StringItem ("","To obtain you gas mileage please click the start button.");    
     form.append(strgItm); 
     form.append(strgItm2); 

} 

OF

PART私は何も持っていません!本当は文字通りブルースクリーン。

}

答えて

1

問題は、MIDPやJ2MEとは何の関係もありません。問題は、引数がメソッドにどのように渡されるかのセマンティクスにあります。

これは、メソッドの引数は、Javaで値渡しあることを覚えておくことが重要です。その結果、メソッドに渡されるオブジェクトの場合、その参照のコピーが渡されます。メソッド内のオブジェクトの参照への変更は、メソッドの外部への影響はありません。

詳細については、thisの記事をご覧ください。

だからあなたのコードでは、

form.deleteAll(); 
form = new Form("Bradford Gas Mileage Calculator"); 

は、上記の2行をコメント。すべてがうまくいくはずです。

+0

タンクス!それがそれでした。 – Mike

関連する問題