То, что я хочу сделать:
У меня есть JavaFX ScrollPane
и мне нужно определить область, видимую в ScrollPane
. Я знаю о ScrollPane.getViewPortBounds()
, что позволяет мне получить размер видимой области, но не позицию.JavaFX: Получить видимую область ScrollPane
Есть ли способ, которым я могу это сделать?
В контексте:
Я отображая очень большое изображение, которое нужно будет отображаться только в участках одновременно. Весь файл ScrollPane
используется для прокрутки изображения, но для определения того, какие части изображения мне нужно загрузить, мне нужно знать видимую область, отображаемую в ScrollPane
.
Хм .. Я играл с этим немного, и он работает, но отражает только изменения, сделанные путем изменения размера окна. Прокрутка полос прокрутки не обновляет 'viewportBounds', что теперь кажется причиной моей путаницы. Я сделаю отдельный вопрос для не обновляющихся 'viewportBounds'. – sorbet
Прокручиваете свою полосу прокрутки с помощью setHvalue() или вручную? Может быть, это не имеет значения, потому что getViewportBounds() обновляет для меня в любом случае. После прокрутки ваше приложение вызывает getViewportBounds()? Это нужно. Извините, если это глупое предложение! –
Я прокручиваю, перетаскивая полосу прокрутки мышью. Я принял ваше предложение и немного экспериментировал. В моем тестовом приложении [(нажмите здесь)] (http://pastie.org/private/zsjaojwtytphephoxp3rg), только вызывая 'getViewportBounds()', нажав кнопку 'Button', но по какой-то причине не из' ChangeListener' , который я ранее использовал. Маршрут 'Button' для меня не является жизнеспособным вариантом, но мне нужна автоматизация, поэтому мне нужно заставить работать« ChangeListener ». – sorbet