Problème JPanel java

Résolu
Bonjour,

J'ai créé une classe qui hérite de JPanel, et je souhaite remplacer ce JPanel par un autre dans la même JFrame, j'ai codé ceci : removeAll();
add(new nomDeMonNouveauJPanel());
validate();

Et lorsque je fait ceci mon nouveau JPanel apparaît bien mais il ne prend tous l'espace de la JFrame :-/

Comment faire svp?

5 réponses

  1. Modérateur
    Est-ce que le JPanel que tu veux remplacer est le seul contenu de ta JFrame ?
    Quel Layout as-tu utilisé ?
    0
    1. J'utilise un GridLayout pour les deux JPanel et ma JFrame contient au départ uniquement le premier JPanel, puis je fait le code suivant dans une des méthodes de ce JPanel :
      removeAll();
      add(new nomDeMonNouveauJPanel());
      validate();
      0
      1. Modérateur
        Ce removeAll tu devrais plutôt le faire dans la JFrame, pour enlever le premier JPanel, sinon tu l'as encore dans la JFrame quand tu ajoutes le deuxième...
        0
    2. J'ai essayé mais cela ne fonctionne pas :-/ , j'utilise l'architecture MVC donc j'ai fait un removeAll dans le controleur qui hérite de JFrame mais il ne fait rien. Et je précise que lorsque je fait un removeAll() + validate() unique dans le JPanel celui-ci est bien supprimer,mais j'ai juste un problème de tailler avec le nouveau JPanel
      Aurais tu une autre idée ?
      0
      1. Modérateur
        Tu n'as pas dis ce que tu utilisais comme Layout sur la JFrame, il faudrait peut-être le réactualiser.
        Mais personnellement, si tu as juste un JPanel à afficher, je créerai directement une nouvelle JFrame...
        0
    3. Je n'utilise pas de layout pour la jframe :/
      0
      1. Modérateur
        Par défaut c'est un BorderLayout qui est utilisé, tu devrais donc essayer de faire un setLayout(new BorderLayout()) entre le removeAll et le add(new nomDeMonNouveauJPanel());
        0
    4. Exactement ! Sa marche !
      Merci beaucoup ;-)
      0