Javafx 2 :Wie lösche ich eine Zeile oder Spalte in Gridpane
Frage
Wenn ich in JavaFX programmgesteuert eine Reihe von Textfeldern hinzufügen möchte, kann ich einfach die gridpane add-Methode verwenden
Dadurch wird Zeile 1 eine Reihe von Textfeldern hinzugefügt.
for (int i = 0; i < Fields.size(); i++) {
gridpane.add(new TextField(), i, 1);
}
Ebenso, wie lösche ich eine Zeile?.Ich finde keine geeignete Methode, um eine Zeile / Spalte in JavaFX bequem zu löschen.
Lösung
Es gibt keine direkt äquivalente Methode.Um Knoten zu entfernen, verwenden Sie einfach
gridpane.getChildren().remove(...);
oder gridpane.getChildren().removeAll(...);
und übergeben Sie die Knoten, die Sie aus dem Bereich entfernen möchten.
Andere Tipps
In Java 8+ können Sie verwenden removeIf
:
gridPane.getChildren().removeIf(node -> GridPane.getRowIndex(node) == rowNumber);
Vorbehalt
Wenn Sie Elemente aus dem 0. Reihe, überprüfen Sie auch GridPane.getRowIndex(node) == null
, also.,
node -> GridPane.getRowIndex(node) == null || GridPane.getRowIndex(node) == 0
(Ich denke, das ist JavaFX, wobei die Zeilennummer wie folgt belassen wird null
wenn im entsprechenden Element in FXML keine Zeilennummer angegeben ist, obwohl die Angabe keiner Zeilennummer in FXML bedeutet, dass sich das Element in der 0. Zeile befindet, da die Standardzeile die 0. Zeile ist.)
Das funktioniert ziemlich gut:
generasacodicetagpre.