2014-10-01 6 views
2

의 가시 영역을 취득 할 원하는 :
나는 자바 FX ScrollPane있어 그리고 내가 ScrollPane의 보이는 영역을 결정 해야합니다. 나는 ScrollPane.getViewPortBounds()에 대해 알고 있는데, 이는 눈에 보이는 영역의 크기를 얻을 수있게 해주지 만 위치는 얻을 수 없다.자바 FX : ScrollPane에

내가 할 수있는 방법이 있습니까? 문맥에서


:
I는 한 번에 일부분 만 표시 할 필요가 매우 큰 화상을 표시하고있다. ScrollPane 전체는 이미지를 스크롤하는 데 사용되지만로드해야하는 이미지 부분을 확인하려면 ScrollPane에 표시된 가시 영역을 알아야합니다.

답변

0

ScrollPane도 보이는 영역을 제공합니다. 이 코드는 작동하는 것으로 보입니다 :

Bounds bounds = scrollPane.getViewportBounds(); 
    int lowestXPixelShown = -1 * (int)bounds.getMinX() + 1; 
    int highestXPixelShown = -1 * (int)bounds.getMinX() + (int)bounds.getMaxX(); 
+0

음 ... 나는 이걸로 조금 놀았지만 제대로 작동하는 것처럼 보이지만 창 크기를 조정하여 변경 한 사항 만 반영합니다. 스크롤 막대를 스크롤해도'viewportBounds'가 업데이트되지 않습니다. 이제는 혼동의 원인으로 보입니다. 업데이트되지 않는'viewportBounds'에 대해 별도의 질문을 할 것입니다. – sorbet

+0

setHvalue()로 스크롤 막대를 스크롤하거나 수동으로 스크롤 하시겠습니까? getViewportBounds()가 나를 위해 어느 쪽이든 업데이트하기 때문에 문제가되지 않을 수도 있습니다. 스크롤 한 후 앱이 getViewportBounds()를 다시 호출합니까? 필요합니다. 그것이 바보 같은 제안이라면 미안 해요! –

+0

마우스로 스크롤 막대를 드래그하여 스크롤하고 있습니다. 나는 너의 제안을 받아 조금 실험했다. 내 테스트 app (여기를 클릭하십시오) (http://pastie.org/private/zsjaojwtytphephoxp3rg)에서는'Button '을 클릭하여'getViewportBounds()'만 호출하지만, 어떤 이유로'ChangeListener'가 아닌 나는 이전에 사용하고있었습니다. 'Button' 경로는 나에게 실행 가능한 옵션은 아니지만 - 자동화가 필요하므로'ChangeListener' 작업을해야합니다. – sorbet