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é ?
    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();
      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...
    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 ?
      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...
    3. Je n'utilise pas de layout pour la jframe :/
      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());