Pregunta

Si quiero agregar una fila de campos de texto programáticamente en Javafx, simplemente puedo usar el método Agregar GridPane

Esto agrega un conjunto de campos de texto a la fila 1.

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

de manera similar, ¿cómo borro una fila?No encuentro un método adecuado para eliminar una fila / columna convenenientemente en Javafx.

¿Fue útil?

Solución

No hay un método directamente equivalente.Para eliminar los nodos, solo use gridpane.getChildren().remove(...); o generacodiCodeGode y pase en los nodos que desea eliminar del panel.

Otros consejos

En Java 8+, puede usar removeIf :

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

advertencia
Si elimina los artículos de la 0th fila , también revise GridPane.getRowIndex(node) == null, i.e.,

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

(Creo que esto es Javafx, dejando el número de fila como null cuando no se proporciona ningún número de fila en el elemento correspondiente en FXML, aunque no proporciona ningún número de fila en FXML significa que el elemento está en la fila 0, ya que la fila predeterminada esla serie 0.)

Esto funciona bastante bien:

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

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top