Программа конвертации J2ME не принимает ввод пользователя - PullRequest
0 голосов
/ 06 декабря 2010

У меня проблемы с тем, что моя программа-конвертер не принимает значение, введенное пользователем.Все кажется правильным, но результат всегда такой, как если бы пользователь ничего не вводил.Если кто-то может просто указать мне правильное направление, я был бы очень признателен!

Мой проект состоит из 2 файлов (1 мидлет и 1 класс).

код был слишком длинным для публикации на этом форуме, поэтому я загрузил zip.

Редактирование, размещенное здесь, теперь должно быть чище: удалено Я не могу сузить его до небольшого фрагмента кодапотому что это может быть любое количество вещей, которые я уже пробовал.Я знаю, что это довольно много, но код не слишком длинный.Я был бы чрезвычайно признателен, если бы кто-нибудь мог взглянуть.

edit 2: файл, похоже, пытается загрузить изображение ... вот код на другом форуме, в котором я разместил, но не получил ответов.: http://www.codingforums.com/showthread.php?p=1024059#post1024059

edit 3: вот где я думаю, что проблема заключается в коде: `public double customForm (String fName) {ui_form = new Form (fName);

    ui_form.addCommand(Convert);
    ui_form.addCommand(Back);

    display.setCurrent(ui_form);

num = new TextField("Enter the number of units you would like to convert", "", MAX_CHARS, TextField.ANY);
    ui_form.append(num);
    ui_form.setCommandListener(this);

    /***********************/
    /* THIS IS NOT WORKING*/
   // str = num.getString();
    str = "The number is: " + num.getString();
    try
    {
    numUnits = Double.parseDouble(str);
    }
    catch (NumberFormatException nfe)
    {
    }
    finally
    {
        return numUnits;
    }

    //return str;
}

`

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

1 Ответ

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

Вы не можете прочитать текстовое поле сразу после его добавления в форму.Похоже, вы предполагали, что метод num.getString() блокируется до тех пор, пока не будет введен пользователь - это не так.Пользовательский ввод предоставляется асинхронно , т.е. вы должны прочитать содержимое текстового поля в ответ на пользовательскую команду, где-нибудь в методе commandAction() (в вашем случае, когда команда Convert былавыдан пользователем).

Асинхронная обработка пользовательских событий является основным шаблоном в разработке GUI.В связи с этим я рекомендую прочитать пример кода для обработки команд в JavaME, например this или this .

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