J'utilise SceneBuilder 8.0.0 et JavaFX 8.
J'ai un Button btn
et un Label lbl
attaché à un AnchorPane ap
.
Au démarrage de l'application, btn
et lbl
sont attachés à ap
.
Comment puis-je supprimer l'un de ces nœuds? (je ne connais que la méthode clear () qui supprime tous les nœuds de
ap
). Merci.
Dans JavaFX, les nœuds peuvent simplement être supprimés d'un Parent (par exemple un AnchorPane ) en utilisant .getChildren()
suivi de .remove(Object o)
Donc, si vous avez une référence directe à ces nœuds, vous pouvez utiliser le code suivant pour supprimer le Button
du AnchorPane
:
ap.getChildren().remove(btn);
Si, pour une raison quelconque, vous n'avez pas de référence au Button btn
vous pouvez utiliser lookup (String selector) pour le trouver et le supprimer comme ceci:
ap.getChildren().remove(ap.lookup('.button'));
Ou enfin, puisque vous utilisez SceneBuilder (et donc fxml), vous pouvez également vous assurer d'avoir un contrôleur connecté et attribuer un identifiant à votre bouton pour obtenir maintenez une référence et supprimez-la comme ceci:
// ... somewhere in your class
@FXML
private Button myButtonId;
// ... somewhere in a method
ap.getChildren().remove(myButtonId);