Я хочу получить узел в GridPane по индексу, я знаю, что вы можете сделать это, перебирая getChildren, но мне было интересно, есть ли менее уродливый способ сделать это. Если бы я знал, что getChildren отсортирован, это можно было бы сделать с помощью getChildren.get( row*width + column)
, но мне нужно знать, отсортирован ли он каким-либо образом, прежде чем делать это.
отсортировано ли getChildren на Gridpane? (JavaFX)
Ответы (1)
getChildren()
просто возвращает ссылку на List
. Порядок элементов в этом списке полностью определяется методами, которые вы вызываете, и порядком, в котором вы их вызываете. Например. вызов add(child)
добавьте элемент (a Node
) в конец списка, поэтому, если все, что вы делаете, это многократно вызываете add
, узлы будут расположены в списке в том порядке, в котором вы их добавили. Если вы вызываете add(index, child)
< /a> дочерний узел будет добавлен по указанному индексу (поэтому, если вы неоднократно вызываете add(0, child)
, дочерние узлы будут в порядке, обратном тому, в котором вы их добавляли. Если вы вызываете addAll(nodes)
дочерние узлы будут добавлены в порядок их появления в конце списка и т. д.
Итак, суть в том, что вы можете контролировать порядок дочерних узлов в списке, чтобы он был таким, каким вы хотите.