erreur dans mon code?

  • Auteur de la discussion oceane751
  • Date de début

oceane751

Habitué
bonsoir !!
je voudrais que la reponse a ce petit test soit "celibataire"
mais que se soit "marie", "divorce" ou "celibataire" que je coche, le seul reponse que le programe m'affiche est :
"mauvaise reponse niark niark"

mon code :
Code:
package com.jeu.test; 
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.JOptionPane; 


// si le bouton coché est celibataire alors resultat est bravo!! 

public class Jeu extends Frame implements ActionListener 
{ 
    Frame f = new Frame("jeu"); 
    Checkbox marie = new Checkbox("marié"); 
    Checkbox divorce = new Checkbox("divorcé"); 
    Checkbox celibataire = new Checkbox("celibataire"); 
    Button bout = new Button("entrez votre reponse"); 
      
    

    public Jeu() { 
        bout.addActionListener (this); 
        add(marie); 
        add(divorce); 
        add(celibataire); 
        add(bout); 
        setVisible(true); 
        setLayout(new FlowLayout()); 
        setTitle("Jeu"); 
        setBounds(100,100,250,150); 
        
    } 

    public void actionPerformed(ActionEvent e) { 
        if (e.getSource() == celibataire) 
            JOptionPane.showMessageDialog(null, "bravo"); 
        

        else if (e.getSource() != celibataire) 

            JOptionPane.showMessageDialog(null, 
                                          "mauvaise reponse niark niark"); 
        
    } 


    public static void main(String[] args) { 
        Frame f = new Jeu(); 
    } 
}

merci beaucoup!
 

Baster

Grand Maître
a tout hasard :
Code:
        if (e.getSource() == bout)
        { 
            if celibataire.Checked //po sur de la syntax exacte
                JOptionPane.showMessageDialog(null, "bravo");
            else 
                JOptionPane.showMessageDialog(null, "mauvaise reponse niark niark");
        }
 

oceane751

Habitué
huumm oki
mais le Checked appartient à quelle librairie de java (import...) ??
parce que ce Checked est souligné en rouge dans mon code...
 

Baster

Grand Maître
en fait j'ai pas programme en java depuis un bon bout de temps (2 ans ?) donc le "checked" c'etait totalement au pif.
Regarde la javadoc sur les checkbox pour voir comment tester si c'est coche ou pas.
en gros le probleme de ton code c'est que la source dans actionPerformed est toujours le bouton "bout", jamais les checkbox. Donc tu verifies si le bouton est clicke (au cas ou ton action performed ait a gerer d'autres evenements) et si c'est le cas tu test si la checkbox "celibataire" est coche...
 

oceane751

Habitué
oui oui j'ai resolu le probleme, enfin on m'a bien aidé
Code:
package com.jeu3.test;

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 


   public class Jeu3 extends Frame implements ActionListener 
   { 
       Frame f = new Frame("jeu"); 
       Label situation = new Label("quel est le chanteur du groupe Placebo?");
       JRadioButton chant1; 
       JRadioButton chant2; 
       JRadioButton chant3; 
       Button bout = new Button("entrez votre reponse"); 
       Button quitter = new Button ("quitter l'application");



       public Jeu3() { 
          
          chant1  = new JRadioButton("Brian Molko"); 
          chant2 = new JRadioButton("Johnny Halliday"); 
          chant3 = new JRadioButton("Jean Pascal"); 
          ButtonGroup bg = new ButtonGroup(); 
          bg.add(chant1); 
          bg.add(chant2); 
          bg.add(chant3); 
           bout.addActionListener (this); 
           quitter.addActionListener(new ListenerQuitter());
           add(situation);
           add(chant1); 
           add(chant2); 
           add(chant3); 
           add(bout); 
           add(quitter);
           setVisible(true); 
           setLayout(new FlowLayout()); 
           setTitle("Jeu"); 
           setBounds(100,100,250,150); 

       } 

       public void actionPerformed(ActionEvent e) { 
           if (chant1.isSelected()) 
               JOptionPane.showMessageDialog(null, "bravo!!"); 


           else 

               JOptionPane.showMessageDialog(null, 
                                             "mauvaise reponse niark niark"); 

       } 
       class ListenerQuitter implements ActionListener
       {
           public void actionPerformed(ActionEvent e)
           {
               System.exit(0);
           }
       }


       public static void main(String[] args) { 
           Frame f = new Jeu3(); 
       } 
   }

mais j'aimerais creer un quizz, avec un systeme de point et donc de score final
pourrais tu m'aiguiller?
merci!!
 

Baster

Grand Maître
j'aime po trop le "ListenerQuitter" ... autant tout foutre dans le actionPerformed pricipal avec des e.getSource...
Sinon pour le questionnaire, tu peux faire un tableau de chaines pour question + reponse (
question[0] = ["Question0","reponse0","reponse1","reponse2","reponse3"]
question[1] = ["Question1","reponse0","reponse1","reponse2","reponse3"]
... regardes pas l'ecriture, pas fait de java depuis 2 ans, je propose juste une methode) associe a un tableau d'entier indiquant le numero de la reponse (reponse[0] = 2; reponse[1] = 3 ...) (a toi de te demerder pour charger ces tableaux dynamiquement depuis un fichier texte ou bien directement les foutre en code...)
A chaque fois que le bouton bout est presse, dans le actionListener, tu regardes si le radioBouton selectionne est le bon, puis tu change le label indiquant la question ainsi que le label associe a chaque radioButton...
a toi de te demerder avec cette idee :)
 

oceane751

Habitué
huumm
je vais faire comme dans mon code, mettre plusieurs questions puis attribuer une bonne reponse qui sera egale a 1
et au final, un total des points ( du aux bonnes reponses) est calculé
donc en faites il faudrait que je mette un truc du genre :
Code:
public void actionPerformed(ActionEvent e) {  
           if (chant1.isSelected())  
pt == 1

avec declaration du type :
Point pt;
suis je sur la bonne route ou suis je completement à l'ouest??
je debute et je te remercie pour ta reponse, que je rouve un peu compliquée... :$
 

Baster

Grand Maître
bah pas trop le temps d'affiner l'idee ni l'ecriture, j'suis au taff la :D

pour le point, utilise juste un entier et tu fais
pt += 1;

ma solution peut te paraitre compliquee mais elle permet de garder un code compacte si tu fais un gros quizz vu que le code est reutilise a chaque question. Apres si tu fais juste un quizz de 4 questions pour le fun, pas besoin de faire ca [:ddr555]
ma solution suppose (desole je ne l'avais pas ecris) de n'afficher qu'une question a la fois et de passer a la question suivante en appuyant sur un bouton...

enfin c'est toi qui voit ce que tu veux faire :)
 

oceane751

Habitué
Oui j'avais pensé à ca, c'est beaucoup mieux j'avoue
mais je ne te cache pas que je trouve cela difficile mais j'aimerais bien essayé cette facon et est ce que tu peux m'aider?
quand je clike par exemple, sur "question suivante", dans la meme fenetre, apparait une nouvelle question

merci
 

Baster

Grand Maître
je ne pourrais pas t'aider beaucoup plus que ca pour plusieurs raisons :
- pas utilise Java depuis 2 ans et pas envie de me remettre a lire de la doc pour te pondre des bouts de code exactes :D
- c'est a toi de chercher comment faire, je peux te donner des idees mais il vaut mieux apprendre en experimentant soi-meme :) (excuse a deux balles je sais mais j'utilise internet au boulot seulement, j'ai pas la motive pour passer trop de temps en dehors de mon projet, de plus Kangol est bien mieux place que moi pour t'aider en Java :D)

je
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 162
Messages
6 718 628
Membres
1 586 456
Dernier membre
Deverlord
Partager cette page
Haut