Nettoyer gridPane en JavaFX et de maintenir des lignes de la Grille
Je suis en train de faire un jeu simple (c'est un travail scolaire) dans JavaFX et je suis en train d'effacer le panneau avec le conseil, et puis il suffit de le repeindre. J'ai essayé beaucoup de méthodes, et c'est le seul que j'ai trouvé qui supprime tous les morceaux du conseil d'administration (visuellement), sans création d'un bug visuel qui montre une pièce qui a déjà été supprimés, mais est toujours montré.
Donc, je déclare la gridPane
comme ceci:
private GridPane gridPecas;
@Override
public void start(Stage primaryStage)
{
gridPecas = new GridPane();
gridPecas.setGridLinesVisible(true);
paintBoard();
//rest of the code to create and paint the Stage
}
private void paintBoard()
{
gridPecas.getChildren().clear();
//Code to fill the board with ImageView and Images of the pieces
}
Le problème avec cette méthode, est que lorsque l' "gridPecas.getChildren().clear();" est appelé, je viens de perdre les lignes de la grille de la GridPanel
.
Comment puis-je résoudre ce problème?
OriginalL'auteur aliasbody | 2012-06-21
Vous devez vous connecter pour publier un commentaire.
setGridLinesVisible(boolean)
est pour debug seulement:http://docs.oracle.com/javafx/2/api/javafx/scene/layout/GridPane.html#setGridLinesVisible(booléen)
Vous pouvez même pas changer le quadrillage de couleur par exemple.
Il faut donc trouver une autre façon de faire de votre quadrillage, et ensuite appeler
parce que c'est mieux que
gridPecas.getChildren().removeAll(pecasFX[i][j]);
OriginalL'auteur Flo C
Un moyen de l'effacer les GridPane et de maintenir le Quadrillage est comme suit :
le premier Nœud* dans le GridPane (*si vous réglez la GridLinesVisible avant d'ajouter des éléments dans la grille?) contient les lignes du Quadrillage (et peut-être d'autres choses).
Donc, vous avez juste besoin de garder cette Nœud devant la claire & re-ajouter après
OriginalL'auteur vdd.Ju
un one-liner: grille.getChildren().retainAll(la grille.getChildren().get(0));
OriginalL'auteur j1nma
Hmm, ma suggestion est de ne pas effacer tous les enfants. Toujours laisser la imageViews et il suffit de remplacer les images qu'ils montrent. Pour "effacer" le conseil d'administration de mettre un "vide" de l'image.
OriginalL'auteur Uluk Biy