본문 바로가기

개발/JavaFX

javafx control 들 offset 구하기. 모니터 크기 application 창 크기 구하기

각 콘트롤의 xy을 구하는 식은 아래줄 참고하면 됩니다.


Bounds textFieldOffset = textField.localToScene(textField.getBoundsInLocal()); // <<< offset 구하기.


System.err.println("############# : " + textFieldOffset);

결과====>

############# : BoundingBox [minX:178.0, minY:370.0, minZ:0.0, width:89.0, height:38.0, depth:0.0, maxX:267.0, maxY:408.0, maxZ:0.0]


설명

minX - textField 의 좌측선 위치.

maxX - textField 의 우측선 위치.

minY - textField 의 위쪽선 위치.

maxY - textField 의 아래쪽선 위치.


height - 콘트롤의 높이








화면 크기 구하기


Rectangle2D visualBounds = Screen.getPrimary().getVisualBounds();

Rectangle2D bounds = Screen.getPrimary().getBounds();

double taskbarHeight=bounds.getHeight()-visualBounds.getHeight();


System.err.println("#############bounds.getHeight() : " + bounds.getHeight());

System.err.println("#############visualBounds.getHeight() : " + visualBounds.getHeight());

System.err.println("#############taskbarHeight : " + taskbarHeight);

System.err.println("#############visualBounds : " + visualBounds);

System.err.println("#############bounds : " + bounds);



결과====>

#############bounds.getHeight() : 1200.0

#############visualBounds.getHeight() : 1160.0

#############taskbarHeight : 40.0 //콘트롤 height

#############visualBounds : Rectangle2D [minX = 0.0, minY=0.0, maxX=1920.0, maxY=1160.0, width=1920.0, height=1160.0]

#############bounds : Rectangle2D [minX = 0.0, minY=0.0, maxX=1920.0, maxY=1200.0, width=1920.0, height=1200.0]


//bounds

maxX=1920.0 - 모니터 가로

maxY=1200.0 - 모니터 세로

height=1200.0 - application 창의 높이