2010-12-06 12 views
0

J'ai des problèmes avec mon programme de conversion qui n'accepte pas la valeur entrée par l'utilisateur. Tout semble si bien mais le résultat est toujours comme si l'utilisateur n'avait rien saisi. Si quelqu'un peut me pointer dans la bonne direction, je l'apprécierais grandement!Le programme du convertisseur J2ME n'accepte pas l'entrée de l'utilisateur

mon projet se compose de 2 fichiers (1 midlet et 1 classe). Le code était trop long pour être publié sur ce forum, j'ai donc téléchargé le fichier .zip.

Modifier hébergé ici maintenant devrait être plus propre: retiré Je ne peux pas vraiment le réduire à un petit morceau de code, car il pourrait être un certain nombre de choses que j'ai déjà essayé. Je sais que c'est demander un peu mais le code n'est pas incroyablement long. Je serais extrêmement reconnaissant si quelqu'un pouvait jeter un coup d'oeil.

modifier 2: le fichier semble essayer de télécharger une image ... voici le code dans un autre forum i posté dans mais n'a obtenu aucune réponse .: http://www.codingforums.com/showthread.php?p=1024059#post1024059

modifier 3: voici où je pense que le le problème réside dans le code: `public double customForm (chaîne 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; 
} 

`

mais vous aurez probablement besoin de regarder le reste du code pour voir où réside le problème. c'est juste la racine je pense

+2

Ce site semble nous obliger à installer une barre d'outils. veuillez éditer votre question avec l'énoncé du problème –

+1

Il suffit de réduire le code à un [SSCCE] (http://sscce.org) (c'est-à-dire le minimum absolu de code nécessaire pour reproduire le problème qui est exécuté par un 'main()' méthode). – BalusC

+0

C'est un programme de conversion en j2me. Je ne sais pas exactement où se situe le problème et le code n'est pas si long à regarder dans l'autre post du forum. Je vais éditer ma question avec où je pense que le problème se trouve bien. – Robert

Répondre

0

Vous ne pouvez pas lire le champ de texte juste après qu'il a été ajouté à un formulaire. Il semble que vous ayez supposé que la méthode num.getString() bloquait jusqu'à la saisie par l'utilisateur - ce n'est pas le cas. Entrée utilisateur est fourni de manière asynchrone, à savoir que vous devriez lire le contenu du champ de texte en réponse à une commande utilisateur, quelque part dans la méthode commandAction() (dans votre cas lorsque la Convert commande a été émis par l'utilisateur).

La gestion asynchrone des événements utilisateur est un motif de base dans le développement de l'interface graphique. À cet égard, je recommande de lire un exemple de code pour la gestion des commandes dans JavaME, par exemple this ou this.

+0

De ce que je comprends que vous dites .. est d'ajouter: si (c == Convertir) { str = num.getString(); conversion(); } À l'action de commande? – Robert

+0

@Robert: Oui, par exemple. Bien sûr, vous devriez faire quelque chose avec * str *, par ex. passez-le à la méthode de conversion (ou lisez-le dans cette méthode). Cela dépend principalement de la conception de votre application. –