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

AWT/Swing Java Discussion :

Créer une boucle de JPanel


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 23
    Par défaut Créer une boucle de JPanel
    Voila j'ai un programme de création de QCM a faire, donc j'ai une fenetre que je ne sais pas trop comment réaliser:

    Donc j'ai des questions dans mon qcm, et pour chaque question je crée une fenetre. Dans cette fenetre je veux mettre toutes les réponses possibles avec une CheckBox a coté pur répondre. Mais le probleme c'est que chaque question comporte un nombre de réponse différentes(ex:2,3,10,6..).
    Donc voila ma question:
    Comment créer une boucle qui selon le nombre de réponse pour la question, me crée le nombre de JPanel nécessaire.
    J'ai pensé a qqchose comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for(int i=0;i<q.getReponses().size();i++){
                Reponse rep=q.getReponses().elementAt(i);
                boolean b=false;//sert pour savoir s'il y a une ou plusieurs réponse possible
                panel5.add(new JPanelReponse(rep,b));//une classe qui crée un JPanel spécifique pour la réponse
            }
    Le soucis c'est que le panel crée par JPanelReponse sera anonyme, donc pas possible de récupérer la checkbox associé pour savoir ce qu'a répondu l'élève.

    Avez vous une idée?

    Merci

  2. #2
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Qq chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    JPanel panelReponses = new JPanelReponses(question);
    panel5.add(panelReponses);
    Collection choix = panelReponses.getChoix();
     
    ...
     
    class JPanelReponses extends JPanel {
     
         private Collection reponses;
     
         private AbstractButton buttons[];
     
         public JPanelReponses(Question question) {
             setLayout(new BoxLayout(this, BoxLayout.Y_AXIS);
     
             this.reponses = question.getReponses();
             this.buttons = new AbstractButton[reponses.size()];
     
             // une seule réponse possible => JRadioButton
             // plusieurs réponses possibles => JCheckBox
             boolean multiple = question.getMultiple();
             ButtonGroup group = multiple ? null : new ButtonGroup();
     
             int buttonIndex = 0;
             for (Iterator it = reponses.iterator(); it.hasNext();) {
                 Reponse reponse = (Reponse) it.next();
                 if (multiple) {
                    buttons[buttonIndex] = new JCheckBox(reponse.toString());
                 } else {
                    buttons[buttonIndex] = new JRadioButton(reponse.toString());
                    buttonGroup.add(buttons[buttonIndex]);
                 }
                 add(buttons[buttonIndex]);
                 buttonIndex++;
             }
         }
     
         public Collection getChoix() {
             List choix = new ArrayList();
             int buttonIndex = 0;
             for (Iterator it = reponses.iterator(); it.hasNext();) {
                 Reponse reponse = (Reponse) it.next();
                 if (buttons[buttonIndex].isSelected()) {
                    choix.add(reponse);
                 }
                 buttonIndex++;
             }
             return choix;
         }
    }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 23
    Par défaut
    Ca a l'air vraiment bien, va falloir que je relise ton code plusieurs fois pour comprendre.
    Merci beaucoup

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 23
    Par défaut
    Okay j'ai compris tout, c'est énorme super, en + tu m'apprends des trucs comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ButtonGroup group = multiple ? null : new ButtonGroup();
    Ce qui doit vouloir dire(arretez moi si je me trompe)
    si multipe=true mettre Buttongroup group=null sinon Buttongroup group=new buttongroup()

    alors que moi je fais tout le temps:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ButtonGroup group=null;
    if(multipe==true){
    ButtonGroup group=new ButtonGroup();}
    Ce qui est bien plus long

Discussions similaires

  1. Comment faire pour créer une boucle ?
    Par Arko76 dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 02/04/2007, 17h14
  2. [XSLT] Comment créer une boucle
    Par Kefass dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 28/02/2007, 21h57
  3. [PHP-JS] Comment créer une boucle avec des headers
    Par djinnwatcher dans le forum Langage
    Réponses: 10
    Dernier message: 17/07/2006, 15h48
  4. Comment créer une boucle ?
    Par kikica dans le forum Langage
    Réponses: 5
    Dernier message: 15/03/2006, 21h02
  5. [XSLT]créer une boucle
    Par fraoustin dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 11/01/2005, 14h13

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