2010-12-07 9 views
0

Je pourrais utiliser un peu d'aide. J'ai eu ce programme pour fonctionner alors j'ai découvert que je devais utiliser le design MVC. Cela semble assez simple mais, mon petit programme de jouet ne montrera pas mes formes. AIDEZ-MOI!! Voir les ci-dessous snipets:Le formulaire ne s'affichera pas. . . Dooh!

PARTIE DE 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); 
} 

PAGE D'ACCUEIL VOIR LA CLASSE

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); 

} 

Je n'ai rien! Vraiment littéralement un écran bleu.

}

Répondre

1

La question n'a rien à voir avec MIDP ou J2ME. Le problème est de la sémantique de la façon dont les arguments sont transmis aux méthodes.

Il, important de se rappeler que les arguments à la méthode sont passé par valeur en Java. La conséquence est que lorsqu'un objet est passé à une méthode, une copie de cette référence est transmise. Toute modification de la référence de l'objet dans la méthode n'a aucun effet en dehors de celle-ci.

Veuillez consulter l'article this pour plus d'informations.

Donc, dans votre code,

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

Commentaire les deux lignes ci-dessus. Tout devrait bien se passer.

+0

Réservoirs mon! C'est ce qu'il a fait. – Mike