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

Composants Java Discussion :

Problème de JPanel


Sujet :

Composants Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 11
    Par défaut Problème de JPanel
    Bonjour,

    Je développe un programme permettant d'afficher toutes les solutions possible pour une grille de sudoku.

    Je chercher à afficher mes résultats dans une fenêtre comprenant deux grilles, dans celle de gauche l'énoncé et dans celle de droite le résultat.
    Voilà ce que cela donne:



    Seulement une fois que je clique sur le bouton solution suivante tout la partie de droite disparait:



    Je ne comprend pas pourquoi la grille disparait alors que le code reste le même:

    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
    panelDroit.removeAll();
     
    			solution = listeRes.get(numSolution);
    			for (int l = 0; l < 13; l ++){							
    				for (int c = 0;c < 25; c ++){
    					if (solution[l][c] != null){
    						if (solution[l][c].compareTo("0") == 0){
    							panelDroit.add(new JLabel(" "));
    						} else {
    							panelDroit.add(new JLabel(solution[l][c]));
    						}
    					} else {
    						panelDroit.add(new JLabel(solution[l][c]));
    					}
    				}
    			}
    			panelDroit.repaint();
    la seul différence est la variable numSolution qui a été incrémenté par le clique sur le bouton. La variable listeRes est une arraylist comportant toutes les solutions possibles, je sais qu'elle n'est pas vide et que toutes les solutions sont différentes.

    Je ne comprend donc pas pourquoi tout les éléments JLabel ne réapparaisse pas.

    Merci de m'aider si vous savez pourquoi

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    panelDroit.revalidate()
    au lieu de .

    Le repaint n'a aucune considération pour les changements du contenu du panel en lui même, il ne fait que dessiner. Revalidate au contraire indique au composant que sont contenu a été réorganisé

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 11
    Par défaut
    J'ai modifié cela, ça marche impec merci je ne connaissais pas cette méthode et je n'y ai pas prêté attention dans l'api :s

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème avec JPanel
    Par sky88 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 04/08/2008, 15h04
  2. Problèmes performances JPanel rafraichissement images
    Par Mr.Cow dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 23/05/2008, 19h14
  3. problème affichage JPanel dans un JPanel
    Par rburney dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 02/04/2008, 11h36
  4. [Form Builder] problème de JPanel et JTable
    Par syrius31 dans le forum NetBeans
    Réponses: 2
    Dernier message: 19/07/2007, 14h47
  5. Problème repaint JPanel
    Par anthony62 dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 19/09/2006, 15h09

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