Comment supprimer un élément spécifique d'un JPanel en utilisant BorderLayout / GroupLayout?
-
26-10-2019 - |
Question
Je dois enlever le Component
dans le Center
du JPanel
, mais après quelques essais l'emportent pas.
J'ai essayé la méthode ici:
Retrait de l'élément central à partir d'un JPanel en utilisant BorderLayout
Mais la méthode de la réponse produit une erreur de compilation:
Type mismatch: cannot convert from LayoutManager to BorderLayout
Suis-je interpréter la mauvaise réponse?
De plus, je suis également curieux de savoir si je peux mettre à jour juste un seul composant d'un GroupLayout. Quelqu'un pourrait-il me dire comment faire?
EDIT: @mre: Voici le code:
BorderLayout layout = panel.getLayout();
panel.remove(layout.getLayoutComponent(BorderLayout.CENTER));
Ce qui est fondamentalement la même que dans le lien.
Merci à vous tous!
La solution
Vous devez downcaster le gestionnaire de mise en page BorderLayout:
BorderLayout layout = (BorderLayout) panel.getLayout();
Mais si vous savez quel composant est au centre, vous pouvez simplement supprimer:
panel.add(myComponent, BorderLayout.CENTER);
...
panel.remove(myComponent);