отсортировано ли getChildren на Gridpane? (JavaFX)

Я хочу получить узел в GridPane по индексу, я знаю, что вы можете сделать это, перебирая getChildren, но мне было интересно, есть ли менее уродливый способ сделать это. Если бы я знал, что getChildren отсортирован, это можно было бы сделать с помощью getChildren.get( row*width + column) , но мне нужно знать, отсортирован ли он каким-либо образом, прежде чем делать это.


person e2298    schedule 27.11.2016    source источник


Ответы (1)


getChildren() просто возвращает ссылку на List . Порядок элементов в этом списке полностью определяется методами, которые вы вызываете, и порядком, в котором вы их вызываете. Например. вызов add(child) добавьте элемент (a Node) в конец списка, поэтому, если все, что вы делаете, это многократно вызываете add, узлы будут расположены в списке в том порядке, в котором вы их добавили. Если вы вызываете add(index, child)< /a> дочерний узел будет добавлен по указанному индексу (поэтому, если вы неоднократно вызываете add(0, child), дочерние узлы будут в порядке, обратном тому, в котором вы их добавляли. Если вы вызываете addAll(nodes) дочерние узлы будут добавлены в порядок их появления в конце списка и т. д.

Итак, суть в том, что вы можете контролировать порядок дочерних узлов в списке, чтобы он был таким, каким вы хотите.

person James_D    schedule 28.11.2016