Domanda

Se voglio aggiungere una riga di campi di testo programmaticamente in JAVAFX, posso semplicemente usare il metodo GRIDPANE ADD

Aggiunge un set di campi di testo da riga 1.

for (int i = 0; i < Fields.size(); i++) {
   gridpane.add(new TextField(), i, 1);
}
.

Allo stesso modo, come posso cancellare una riga?.Non trovo un metodo adatto per eliminare una riga / colonna convocatamente in javafx.

È stato utile?

Soluzione

Non c'è metodo direttamente equivalente.Per rimuovere i nodi, solo usare gridpane.getChildren().remove(...); o gridpane.getChildren().removeAll(...); e passano nei nodi che si desidera rimuovere dal riquadro.

Altri suggerimenti

In Java 8+, è possibile utilizzare removeIf :

gridPane.getChildren().removeIf(node -> GridPane.getRowIndex(node) == rowNumber);
.

caveat
Se si rimuove gli elementi dalla 0th Row , controlla anche GridPane.getRowIndex(node) == null, I.e.,

node -> GridPane.getRowIndex(node) == null || GridPane.getRowIndex(node) == 0
.

(Penso che questo sia JAVAFX che lascia il numero di riga come null quando nessun numero di riga viene fornito nell'elemento corrispondente in FXML, anche se non dando alcun numero di riga in FXML significa che l'elemento è nella riga di predefinita, poiché la riga predefinita èla 0a fila.)

funziona abbastanza bene:

while(MainGridPane.getRowConstraints().size() > 0){
    MainGridPane.getRowConstraints().remove(0);
}

while(MainGridPane.getColumnConstraints().size() > 0){
    MainGridPane.getColumnConstraints().remove(0);
}
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top