Comment puis-je supprimer des composants de JFrame qui utilise BorderLayout
Le conteneur utilise un BorderLayout. J'ai un Composite que j'ai ajouté au CENTRE. Cependant, le Composite n'est pas un nom de variable.
Je pouvais faire contenu.supprimer(nameofPanel)
Mais depuis que je l'ai ajouté comme ce contenu.add(new CustomJPanel(), BorderLayout.CENTRE);
Maintenant, je vais essayer de supprimer l'actuel CustomJPanel et en ajouter un nouveau.
Comment dois-je faire?
OriginalL'auteur user69514 | 2009-08-04
Vous devez vous connecter pour publier un commentaire.
Alors que Carl réponse est probablement le meilleur, moins agréable alternative si pour quelque raison vous ne pouvez pas modifier l'original de l'appel add ():
Mais si vous pensez que vous avez besoin pour ce faire, vous pouvez recul et d'évaluer pourquoi vous êtes en train de le faire.
OriginalL'auteur Sbodd
Votre meilleur moyen est de l'extrait de l'appel du constructeur dans une variable nommée - probablement un champ, en fait - et de les réduire au cas précédent.
devient
OriginalL'auteur Carl Manaster
Ou vous pouvez lister tous les éléments dans le conteneur avec le http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Container.html#getComponents() la fonction, et la recherche de votre Panneau par un autre attribut (si vous pouvez).
La http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Component.html#getName() attribut est utile à cette fin, par exemple, vous définissez un nom pour votre panneau avant de l'insertion et vous pouvez utiliser ce nom comme une clé de recherche.
OriginalL'auteur Karl
Je vous suggère fortement de déclarer un mondial CustomJPanel variable, l'instancier avec votre premier panneau, puis ajouter le panneau. Lorsque vous voulez le retirer, vous utilisez le même objet. Vous pouvez ensuite affecter le nouvel objet à la variable, et ajouter de la même manière.
Objet anonyme sont d'accord lorsque vous n'avez pas besoin de s'y référer. Mais vous ne. Donc, vous devriez éviter d'utiliser le mode anonyme.
OriginalL'auteur Philippe Carriere