Форма не будет отображаться. , , Dooh! - PullRequest
0 голосов
/ 07 декабря 2010

Я мог бы использовать небольшую помощь. Я заставил эту программу работать, и тогда я узнал, что должен использовать дизайн MVC. Это кажется довольно простым, но моя маленькая игрушечная программа не отображает мои формы. ПОМОГИТЕ!! Смотрите ниже фрагменты:

ЧАСТЬ МИДЛЕТА

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

 }

Я ничего не получил! На самом деле буквально синий экран.

}

1 Ответ

1 голос
/ 07 декабря 2010

Проблема не имеет ничего общего с MIDP или J2ME. Проблема заключается в семантике того, как аргументы передаются в методы.

Важно помнить, что аргументы метода передаются по значению в Java . Следствием этого является то, что когда объект передается методу, передается копия этой ссылки. Любые изменения ссылки на объект в методе не влияют вне его.

Для получения дополнительной информации см. эту статью.

Так в вашем коде,

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

Прокомментируйте две вышеуказанные строки. Все должно быть хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...