Моя задача - создать график с изменяемым размером в полноэкранном режиме. График должен быть изменяемого размера, когда пользователь меняет окно программы, которое по умолчанию полноэкранное (компоненты и линии графика меняют свои размеры). Я понимаю график с AnchorPane
: элементы (которые GridPane
s) остаются в определенных координатах. Затем я делаю линии с помощью метода getBoundsInParent()
. Вот схема графика:
Все хорошо, но проблема в том, что я не могу изменить свой график. Все компоненты остаются с их размерами; переменные prefSize
, minSize
, maxSize
не изменяют размер. Я пытаюсь использовать параметры AnchorPane.setTopAnchor
и т. Д., Но они не меняют размер, а только перемещают компонент GridPane
.
Также я стараюсь использовать GridPane
в качестве макета вместо AnchorPane
. Но мои строки, связанные с методами component.getBoundsInParent()
, разлетаются в случайных позициях (я понимаю, что метод getBoundsInParent()
возвращает другие координаты, которые с GridPane
).
Мой проект находится на рабочих компьютерах без интернета, и я не могу его показать. Я думаю, что способ связывания линий между графиками полезно показывать в блоке кода, потому что это является причиной перемещения линий, когда компоненты находятся в макете GridPane:
line.startXProperty().bind(source.layoutXProperty().add(source.getBoundsInParent().getWidth() / 2.0));
line.startYProperty().bind(source.layoutYProperty().add(source.getBoundsInParent().getHeight() / 2.0));
line.endXProperty().bind(target.layoutXProperty().add(target.getBoundsInParent().getWidth() / 2.0));
line.endYProperty().bind(target.layoutYProperty().add(target.getBoundsInParent().getHeight() / 2.0));
Как изменить размер графа с помощью созданных мной элементов и линий, связанных с этими элементами. Может быть, это свойства AnchorPane
или GridPane
? Или какое-то связывание начальных и конечных точек линий?