IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Applets Java Discussion :

Probleme programme java


Sujet :

Applets Java

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 139
    Points : 57
    Points
    57
    Par défaut Probleme programme java
    Bonjour,
    Le but du programme est de trouver le nombre aléatoire .Le programme se compile et fonctionne à moitié :/
    -premiere erreur mon exception fonctionne meme quand je rentre un nombre.
    -seconde mon nombre de coups est faut : toujours égal à 0.
    -troisième mon numéro aléatoire vaut toujours 0.




    import java.awt.*;
    import java.applet.*;
    import java.util.*;
    import java.awt.event.*;


    public class Devine extends Applet{
    static final int Max=10;
    Button b1=new Button("valider");
    TextField t1=new TextField(30);

    public void init(){
    b1.addActionListener(new B1());
    add(b1);
    add(t1);
    }

    class B1 implements ActionListener{

    public void actionPerformed(ActionEvent e){
    int nb,compteur=0;
    boolean trouve=false;
    nb=(int)(Math.random())*10;
    try{
    while(trouve==false){
    int nb2 = Integer.parseInt(t1.getText());
    int nombre = Integer.parseInt(t1.getText());
    if(nb==nb2){
    t1.setText("vous avez gagnez en "+compteur+"coups");
    trouve=true;
    }else{if(nb>nb2){
    t1.setText("entrez un nombre plus grand");
    compteur=compteur+1;
    }else{if(nb<nb2){
    t1.setText("entrez un nombre plus petit");
    compteur=compteur+1;
    }
    }
    }
    }

    }catch(NumberFormatException f){
    t1.setText("erreur entrez un nombre");}
    }
    }
    }

  2. #2
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Points : 14
    Points
    14
    Par défaut
    essaie d'entourer ton code des balises #

    Pour le nombre aléatoire toujours égal à zero remplace:
    nb=(int)(Math.random())*10;
    par :
    nb=(int)((Math.random()*9)+1);

    Pour le nombre de coup toujours à zéro, je pense que c'est du au fait que tu le remet à 0 à chaque appel de ta fonction "actionPerformed".
    Met le en attribut de la classe et travaille dessus. Ca devrait régler le problème.

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 139
    Points : 57
    Points
    57
    Par défaut
    Merci ca fonctionne sauf que mon exception ne fonctionne pas.Enfin si elle fonctionne trop bien car quand je rentre un nombre elle me dit que c'est un caractere.

  4. #4
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Points : 14
    Points
    14
    Par défaut
    il faudrait peut-être que tu lances ton exception

    tu realises un test sur nb. Si nb<1 et nb>10 (par exemple) bah tu lances ton exception :
    throw new NumberFormatException("Nb incorrect");

    et tu gères l'exception après par le biais de try et catch lors de l'appel de ta fonction.
    revois ton cours sur la gestion d'exception

    En gros pour gerer une exception tu as une methode qui est susceptible de la gérer. Ex: void exemple() throws NumberFormatException
    Après quand tu la rencontres tu signales que tu as rencontré une exception :
    Ex: throw new NumberFormatException("Nb incorrect");

    Ensuite tu encadres les appels à cet methode par tes blocs try et catch. :p

  5. #5
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Bonjour
    Citation Envoyé par Benjimo
    Pour le nombre aléatoire toujours égal à zero remplace:
    nb=(int)(Math.random())*10;
    par :
    nb=(int)((Math.random()*9)+1);
    Cette fonction random que tu utilises ici est censé renvoyer un double et vu que tu cherches à obtenir un entier je trouve que tu fais trop de choses pour rien tu pourrais utiliser directement "java.util.Random" pour generer un entier aleatoirement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            Random generateur=new Random();
    	int nb=generateur.nextInt(10);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int nb2 = Integer.parseInt(t1.getText());
    int nombre = Integer.parseInt(t1.getText());
    La deuxieme ligne ne te sert pas trop dans le code
    Et concernant l'exception je ne crois pas que le try catch suffira pour regler ton affaire parce que ce que tu veux c'est de redemander à l'utilisateur de rentrer un nombre au cas où il rentre quelque chose autre qu'un nombre ,avec ce que tu fais la si ce n'est pas un nombre ça quittera le programme c'est tout .
    ET une petite remarque aussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if(nb==nb2){
    t1.setText("vous avez gagnez en "+compteur+"coups");
      ..........
    ça veut dire qu'il ira afficher cette phrase dans le Textfield ,pas tres attrayant ça,pourquoi ne pas l'afficher dans un label plutot ou autre chose
    .
    Vu que tu es un adepte de AWT n'oublie pas que Swing aussi est tres cool et plus rapide
    @+
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

Discussions similaires

  1. [Avis] Les meilleurs programmes Java ?
    Par christopheJ dans le forum ImageJ
    Réponses: 69
    Dernier message: 07/10/2008, 01h12
  2. Probleme execution d'un programme java
    Par arnaud036 dans le forum Langage
    Réponses: 4
    Dernier message: 30/08/2007, 11h06
  3. [Velocity] Probleme VelocityContext Dans un programme Java
    Par guizzmo dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 19/06/2007, 09h37
  4. probleme en programmation java
    Par canada_bea dans le forum Langage
    Réponses: 2
    Dernier message: 18/02/2007, 16h26
  5. Lancement d'un programme java depuis un script php
    Par gexti dans le forum Développement Web en Java
    Réponses: 8
    Dernier message: 07/05/2004, 17h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo