Ответ 1
Region
является суперклассом для компонентов, у которых есть дочерние узлы.
Разница в том, что Region
не позволяет манипулировать своими дочерними элементами с помощью API. Метод Region.getChildren()
защищен, поэтому вы не можете его использовать:
new Region().getChildren().add(...); // doesn't compile
new Pane().getChildren().add(...); // works
Почему?
Потому что Region
предназначен для разработчиков компонентов, и он позволяет им выбирать, разрешать ли пользователям API работать с детьми напрямую (например, Pane
, HBox
и т.д.) или нет (например, диаграммы).