Я пытался выяснить, как центрироваться на данной вершине, и натолкнулся на это, но, к сожалению, это было не особо полезно, и я потратил немало времени, пытаясь понять, как это сделать. Итак, делюсь своим опытом здесь на случай, если он будет полезен другим.
Приложение, которое я пишу, имеет VisualizationViewer, который загружается внутри GraphZoomScrollPane. У меня есть GraphMouseListener, который я добавил в VisualizationViewer, который позволяет пользователю щелкнуть правой кнопкой мыши по вершине в видимой области панели прокрутки, и во всплывающем меню они могут выбрать центр по вершине.
Ответ с наибольшим количеством голосов в этом потоке ссылается на использование MutableTransformer из уровня LAYOUT и использует метод translate этого преобразователя для выполнения центрирующего действия. К сожалению, если вы используете масштабирование / прокрутку, то вы на самом деле не знаете размер и расположение слоя макета по отношению к слою вида, не прибегая к куче дополнительной математики.
При использовании панели масштабирования / прокрутки я бы порекомендовал найти расположение вершины в видимой области графика, представленной панелью, а затем отрегулировать положение области просмотра.
Вот фрагмент кода, который я разработал:
* * 1010